此代码读取文件数组,并将它们传递给以下类库。
private void btnConvert_Click(object sender, EventArgs e)
{
if (rbtnNetIX.Checked == true)
{
string[] files = Directory.GetFiles(txtPath.Text, "*.txt");
NetEDI.NetIX.Seiko.Seiko.Main(files);
}
应该由以下代码引用。
public class Seiko
{
public void Main(string[] args)
{
List<FileDefinition.FileDefinition> fileDefs = new List<FileDefinition.FileDefinition>();
foreach (string fileEntries in args)
{
fileDefs.Add(CreateFileDef(fileEntries));
}
foreach (var fileDef in fileDefs)
{
XmlCreator CreateXmlDefinition = new XmlCreator(fileDef.FileName + ".xml", fileDef);
}
}
答案 0 :(得分:9)
Main不是 static ,因此您首先需要对Seiko
类的对象引用,以便调用它。
所以,这里:NetEDI.NetIX.Seiko.Seiko.Main(files);
- 这是对非静态方法的静态调用,因此是错误。
答案 1 :(得分:2)
查看您的Main
方法声明:
public void Main(string[] args)
这是实例方法 - 您必须在Seiko
的实例上调用它。但是当你试着在这里打电话时:
NetEDI.NetIX.Seiko.Seiko.Main(files);
...你试图把它称为静态方法。
鉴于围绕Main
的约定,我强烈怀疑你想让它成为一个静态方法。
(顺便说一下,你应该修改静态成员和实例成员之间的区别,然后再看一下错误信息:看看你是否可以解决为什么你自己没有弄清楚问题,以便下次你遇到类似的东西,你可以解决它。)