c#,类型为字符串数组的类,设置不起作用

时间:2016-08-12 23:00:30

标签: c# arrays class properties set

我有一个有几个属性的类,一对是字符串数组。当以下声明:

MyObj.Str1[1] = "AAA";

MyObj.Str1[1]不包含" AAA"。使用调试断点,我看到set例程没有执行(get例程执行)。

该属性如下:

public string[] Str1
{
    get { return bdr.GetArrVal(1, 25, 7); }
    set { bdr.SetArrVal(1, 25, 7, value); }
}

GetArrVal()从类内部数据构建并返回一个字符串数组。 SetArrVal()设置来自传入数组的类内部数据。

我尝试使用索引器,但在将类内部数据传递到描述Str1的类时遇到太多问题。

请注意声明

MyObj.Str1 = arr1;

有效,其中arr1是一个字符串数组。该程序在设定的例程中中断。

所有这些让我觉得我不能做我想做的事。你能指定一个对象的字符串数组属性的单个元素吗?

2 个答案:

答案 0 :(得分:0)

MyObj.Str1是一个字符串(它是一组字符),MyObj.Str1[1]是该字符串的第二个索引上的字符。您正在为单个字符分配"AAA" 三个元素。如果你试图" 分配一个对象的字符串数组属性的单个元素,这没有任何意义吗?"

答案 1 :(得分:0)

Str1是您public string[] Str1 {发布的属性名称,返回string[]。所以,当你说MyObj.Str1[1] = "AAA";时,你实际上是在尝试设置由Str1属性返回的数组元素而不是属性本身,因此语句MyObj.Str1 = arr1;可以正常工作。