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 はstaticSeikoではないため、クラスを呼び出すには、最初にクラスへのオブジェクト参照が必要です。

したがって、ここでは: 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 に答える