您尚未将该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 - 使用前检查列表以确保它不为空,如果是,则分配一个新列表。同样,这将不是线程安全的,除非您采取措施使其如此(例如,通过进入临界区)
if (!string.IsNullOrEmpty(node))
{
if (variables.MessageStitches == null)
{
variables.MessageStitches = new List<string>();
}
variables.MessageStitches.Add(node);
}