1

C# は ini ファイルを直接サポートしていないことがわかったので、うろついたところ、次のini-parserというライブラリが見つかりました。使い方はごく簡単な例ですが、なぜかVisual studio 2010が好きになれません。Web ページの wiki から次の内容を正確にコピーすると、次のようになります。

        IniParser.FileIniDataParser parser = new FileIniDataParser();
    IniData parsedData = parser.LoadFile("TestIniFile.ini");

下線のparser部分と次のエラーで、次のエラーが表示されます。parser.LoadFile()

エラー 1 フィールド初期化子は、非静的フィールド、メソッド、またはプロパティ 'WindowsFormsApplication1.Form1.parser' を参照できません C:\Users\Support\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 28 30 WindowsFormsApplication1

それが何を言っているのか、またはそれを修正する方法がわかりません。他の誰かが提案/解決策を提供できますか?

4

2 に答える 2

4

フィールド初期化子でこれを実行しようとしています。thisインスタンス フィールド初期化子内で参照することはできません。代わりにコンストラクターで実行します。

private readonly IniData configuration;

public Form1()
{
    InitializeComponent();
    IniParser.FileIniDataParser parser = new FileIniDataParser();
    configuration = parser.LoadFile("TestIniFile.ini");
}

または、パーサー用の個別の変数をまったく使用せずにインラインで実行します。

private readonly IniData configuration =
    new FileIniDataParser().LoadFile("TestIniFile.ini");

(実際にはパーサーは他に必要ないと仮定しているので、フィールドを使用しても意味がありません。)

于 2013-04-26T19:51:47.940 に答える
3

parserエラー メッセージは基本的に、クラスのフィールド初期化子 (の初期化子) 内で (別のフィールド) を使用できないことを示していますparsedData

このロジックをコンストラクターに配置する必要があります。

FileIniDataParser parser = new FileIniDataParser();
IniData parsedData;

public Form1()
{
    InitializeComponent();
    parsedData = parser.LoadFile("TestIniFile.ini");
}
于 2013-04-26T19:51:23.593 に答える