我的班级看起来像这样.
public class LogSettings
{
public string attributeName { get; set; }//TODO: change the variable name
public Warnings[] warnings = new Warnings[3];
}
public class Warnings
{
public string typeOfWarning {get; set;}
public bool isAbsolute { get; set; }
public decimal numUpDownValue { get; set; }
public LogSettingActions[] actionItems = new LogSettingActions[10];
}
public class LogSettingActions
{
public string actionItem{ get; set;}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试创建Warnings实例时,它会抛出NullReference错误.
var rows = FindChilds<ctlLogConfigRow>(lvLogConfigTemplate);
foreach (var row in rows)
{
LogSettings instance = new LogSettings();
instance.attributeName = row.GroupHeaderText;
var allWarnings = FindChilds<ctlWarnings>(row);
for (int i = 0; i < allWarnings.Count; i++)
{
instance.warnings[i].typeOfWarning = allWarnings[i].ctlWarningGroupBoxFixedHeader1.Header.ToString();//It throws error here
Run Code Online (Sandbox Code Playgroud)
有谁能够帮我?
LogSettings.warnings 被初始化为数组,但数组元素未初始化.
考虑在LogSettings构造函数中初始化数组项:
public class LogSettings
{
public LogSettings()
{
warnings = new Warnings[3];
for (int i=0; i<warnings.Length; i++)
{
warnings[i] = new Warnings();
}
}
public string attributeName { get; set; }//TODO: change the variable name
public Warnings[] warnings;
}
Run Code Online (Sandbox Code Playgroud)