我是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();
}
答案 0 :(得分:2)
您的方法声明说
public static void OpretSpejder(string ..., string ...., string ...., string ....)
但是你在没有传递任何4个字符串的情况下调用它
Admin.OpretSpejder();
当然编译器不满意
似乎方法OpretSpejder
想要创建一个包含4个元素的XML文件,并且这4个元素是必需的,因为没有它们会跳过整个代码块,所以除了传递所需的4个字符串之外你别无选择
如果您是OpretSpejder
的作者,那么我认为您应该知道在调用点传递什么,否则您应该向代码的作者询问这四个参数是什么
答案 1 :(得分:1)
您已使用 4个必需字符串参数声明OpretSpejder
方法
(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) {
...
答案 2 :(得分: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();
}
}