2016-08-12 67 views
0

我有一个有几个属性的类,它们是字符串数组。当以下声明:c#,具有类型字符串数组属性的类,设置不起作用

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是一个字符串数组。该程序在设定的程序中断。

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

回答

0

MyObj.Str1是一个字符串(它是一组字符),而MyObj.Str1[1]是该字符串的第二个索引中的字符。您正在将"AAA"三个元素分配给单个字符。如果你想这样做没有任何意义。“分配对象的字符串数组属性的单个元素?

0

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

+0

谢谢你解释得很好。 –

相关问题