2

此代码读取文件数组并将它们传递给以下类库。

    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);
        }
    }
4

2 回答 2

9

Main 不是static,因此您首先需要对该Seiko类的对象引用才能调用它。

所以,在这里:NetEDI.NetIX.Seiko.Seiko.Main(files);- 这是对非静态方法的静态调用,因此是错误的。

于 2013-01-22T10:59:40.357 回答
2

查看您的Main方法声明:

public void Main(string[] args)

这是一个实例方法——你必须在Seiko. 但是当你尝试在这里调用它时:

NetEDI.NetIX.Seiko.Seiko.Main(files);

...您试图将其称为静态方法。

鉴于周围的约定Main,我强烈怀疑您希望将其设为静态方法。

(顺便说一句,您可能应该修改静态成员和实例成员之间的区别,并再次查看错误消息:看看您是否可以弄清楚为什么您自己没有弄清楚问题,以便下次遇到类似的东西,你可以修复它。)

于 2013-01-22T10:59:50.407 回答