【问题标题】:C# Array Syntax when using object oriented programming [duplicate]使用面向对象编程时的C#数组语法[重复]
【发布时间】:2016-05-17 08:38:38
【问题描述】:

我有以下部分类:

public partial class FormInstance
{
    private string referenceField;

    public string Reference
    {
        get { return this.referenceField; }
        set { this.referenceField = value; }
    }
}

public partial class FormField
{
    private string fieldNameField;
    private string fieldValueField;

    public string FieldName
    {
        get { return this.fieldNameField; }
        set { this.fieldNameField = value; }
    }

    public string FieldValue
    {
        get { return this.fieldValueField; }
        set { this.fieldValueField = value; }
    }
}

public partial class EFormData
{
    private FormInstance formInstanceField;
    private FormField[] formDataField;

    public FormInstance EFormInstance
    {
        get { return this.formInstanceField; }
        set { this.formInstanceField = value; }
    }

    public FormField[] FormData
    {
        get { return this.eformDataField; }
        set { this.eformDataField = value; }
    }
}

我有一个方法如下,它的参数是上述类对象类型:

public int writeEformData(EformData formFields)
{
    object[] results = this.Invoke("writeEformData", new object[] {
                        formFields});
    return ((int)(results[0]));
}

在我的代码中,我尝试如下初始化 EformData 对象:

EformData eformData = new EformData ();
eformData.EformInstance.Reference = "1234";
eformData.FormData[0].FieldName = "txt_name";
eformData.FormData[0].FieldValue = "John Doe";
eformData.FormData[1].FieldName = "txt_address";
eformData.FormData[1].FieldValue = "10 Acacia Ave";

int result = web.writeEformData(eformData);

但当我调试时,我在第 2 行出现错误 eformData.EformInstance.Reference = "1234";

发生了“System.NullReferenceException”类型的未处理异常

附加信息:对象引用未设置为对象的实例。

初始化 EformData 对象和分配值的正确语法是什么?

【问题讨论】:

    标签: c# asp.net oop multidimensional-array ienumerable


    【解决方案1】:

    替换

    eformData.EformInstance.Reference = "1234";
    

     eformData.EFormInstance = new FormInstance() { Reference = "1234" };
    

    ..您将在以下几行中遇到相同的问题。您必须先创建每个对象的实例,然后才能为其属性设置值

    eformData.FormData = new FormField[2];
    eformData.FormData[0] = new FormField() { FieldName = "txt_name", FieldValue = "John Doe" };
    

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 2013-04-09
      • 2018-08-02
      • 2012-09-09
      • 2018-05-21
      相关资源
      最近更新 更多