2013-12-17 18 views
-1

進出口新的C#和編程我不能叫我的方法從類形式

我可以使該方法工作,而不是當我試圖從我的班「管理」稱呼它,它認爲它只是一個小問題,但我只是卡住... ..又沒有重載方法「opretspejder」取0參數

任何幫助,幫助我將很高興

這裏我班

public class Admin 
    { 
     public static void OpretSpejder(string Snavn_txt, string Senavn_txt, string Sa_txt, string Scpr_txt) 
     { 
      { 
       if (!(string.IsNullOrEmpty(Snavn_txt))) 
        if (!(string.IsNullOrEmpty(Senavn_txt))) 
         if (!(string.IsNullOrEmpty(Sa_txt))) 
          if (!(string.IsNullOrEmpty(Scpr_txt))) 
          { 
           XmlDocument doc = new XmlDocument(); 
           doc.Load(@"Spejder.xml"); 

           var nodeCount = 0; 
           using (var reader = XmlReader.Create(@"Spejder.xml")) 
           { 
            while (reader.Read()) 
            { 
             if (reader.NodeType == XmlNodeType.Element && 
              reader.Name == "Spejder") 
             { 
              nodeCount++; 
             } 
            } 
           } 

           nodeCount++; 

           XmlElement Spejder = doc.CreateElement("Spejder"); 
           Spejder.SetAttribute("ID", nodeCount.ToString()); 

           XmlNode Navn = doc.CreateElement("Navn"); 
           Navn.InnerText = Snavn_txt; 
           Spejder.AppendChild(Navn); 

           XmlNode Efternavn = doc.CreateElement("Efternavn"); 
           Efternavn.InnerText = Senavn_txt; 
           Spejder.AppendChild(Efternavn); 

           XmlNode Alder = doc.CreateElement("Alder"); 
           Alder.InnerText = Sa_txt; 
           Spejder.AppendChild(Alder); 

           XmlNode Cpr = doc.CreateElement("Cpr"); 
           Cpr.InnerText = Scpr_txt; 
           Spejder.AppendChild(Cpr); 

           doc.DocumentElement.AppendChild(Spejder); 
           doc.Save(@"Spejder.xml"); 

           Snavn_txt = String.Empty; 
           Senavn_txt = String.Empty; 
           Sa_txt = String.Empty; 
           Scpr_txt = String.Empty; 



           // MessageBox.Show("Spejder Oprettet"); 

          } 


      } 

,這裏是

private void button2_Click(object sender, EventArgs e) 
     { 

      Admin.OpretSpejder(); 

     } 
+1

你的方法需要幾個參數,但你沒有傳入一個** **爲什麼? – Arran

+0

當像這樣調用'Admin.OpretSpejder'時傳遞一些參數:'Admin.OpretSpejder(String.Empty,String.Empty,String.Empty,String.Empty)'。 – RePierre

+1

@RePierre然後他的方法不會做任何事情 - 它在各個地方檢查每個參數是否爲空。 – Arran

回答

1

您已經聲明OpretSpejder4強制性字符串參數
(Snavn_txt,Senavn_txt,Sa_txt這四個參數,Scpr_txt):

public class Admin { 
    public static void OpretSpejder(string Snavn_txt, string Senavn_txt, string Sa_txt, string Scpr_txt) { 

... 

所以,如果你想調用這個方法,你要麼提供這些參數

private void button2_Click(object sender, EventArgs e) { 
    string Snavn_txt = "..."; // <- Put your real values here 
    string Senavn_txt = "..."; 
    string Sa_txt = "..."; 
    string Scpr_txt = "..."; 

    Admin.OpretSpejder(Snavn_txt, Senavn_txt, Sa_txt, Scpr_txt); 
    } 

或編譯器建議創建OpretSpejder超載版本不帶任何參數:

public class Admin { 
    // New overloaded version 
    public static void OpretSpejder() { 
    ... 
    } 

    // Old version 
    public static void OpretSpejder(string Snavn_txt, string Senavn_txt, string Sa_txt, string Scpr_txt) { 

... 
+0

1回答爲我工作..謝謝!!!! – Max

2

您的方法的聲明說

public static void OpretSpejder(string ..., string ...., string ...., string ....) 

,但你怎麼稱呼它不經過任何需要

 Admin.OpretSpejder(); 

當然的4串的:我要執行我的方法buttonclick編譯器不高興

看來,方法OpretSpejder想cre吃了4個元素的XML文件,這4個元素是必需的,因爲如果沒有他們整個代碼塊被跳過,所以你沒有別的辦法可以傳遞所需的4個字符串

如果你是OpretSpejder的作者,那麼我認爲你應該知道在調用點通過,否則你應該去問代碼的作者是什麼

0
public partial class Form1 : System.Windows.Forms.Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    Admin classAdmin = new Admin(); 

    private void button2_Click(object sender, EventArgs e) 
    { 
     classAdmin.OpretSpejder("yourstring1","yourstring2","yourstring3","yourstring4"); //Admin.OpretSpejder(); 

    } 

}