variables.MessageStitchesプロパティを新しいリストに設定していません。
いくつかのオプションがありますが、最適なオプションはほぼ確実に 1 つまたは 2 つです。
1 - のコンストラクターで新しいリストを割り当てvariablesます。variablesただし、リストは静的であるため、クラスをインスタンス化していない可能性があり、コンストラクターが実行されないため、これは実際には役に立ちません。ただし、静的コンストラクターを使用できます。
class variables
{
public static List<string> MessageStitches { get; set; }
// Static constructor
static variables()
{
MessageStitches = new List<string>();
}
}
2 - 自動プロパティを使用しないでください。代わりに、初期化時に値が割り当てられるプロパティのバッキング フィールドを用意します。
public class variables
{
private static List<string> messageStitches = new List<string>();
public static List<string> MessageStitches
{
get
{
return messageStitches;
}
set
{
messageStitches = value;
}
}
3 - 使用する前にリストをチェックして、null でないことを確認し、null である場合は新しいリストを割り当てます。繰り返しますが、スレッドセーフにするための措置を講じない限り (たとえば、クリティカル セクションに入るなど) 、これはスレッドセーフではありません。
if (!string.IsNullOrEmpty(node))
{
if (variables.MessageStitches == null)
{
variables.MessageStitches = new List<string>();
}
variables.MessageStitches.Add(node);
}