クラス静的コンストラクタでジェネリックリストを入力しようとするこのコードを実行すると、9行目にSystem.TypeInitializationException例外が発生します。c#TypeInitializationException静的コンストラクタ内のジェネリックコレクションを初期化するとき
using System;
using System.Collections.Generic;
namespace ConsoleApplication5_static_constructor {
public static class DataRepository {
public static List<DefinedField> Tables;
static DataRepository() {
Console.WriteLine("static DataRepository constructor fired");
Tables.Add(new DefinedField("ID")); **//this is line 9**
}
}
public class DefinedField {
string _tableName;
public DefinedField(string tableName) {
_tableName = tableName;
}
public string TableName {
get { return _tableName; }
set { _tableName = value; }
}
}
}
コールコード:、してください
using System.Collections.Generic;
namespace ConsoleApplication5_static_constructor {
class Program {
static void Main(string[] args) {
List<DefinedField> x = DataRepository.Tables;
}
}
}
は何が正確にエラーを引き起こしていると私はそれをどのように解決するのですか?
編集:また、NullReferenceException型の内部例外があります 静的コンストラクタで新しいオブジェクトを初期化できませんか?
一般的に、例外が発生すると、InnerExceptionを調べることは理解できません。これは原因を教えてくれるNullReferenceExceptionでした。 – CathalMF
ありがとう、私は次回このことを念頭に置いておきます。皆さんが私をとても素早く助けてくれてうれしいです。実際には、これを理解するのにはしばらく時間がかかりました。なぜなら、Pythonスクリプトを書くのにもっと慣れているからでしょうか? – kitty
@CathalMF一般的にはyesですが、静的なコンストラクタで例外が発生した場合はそうではありません。 – Maarten