我有一个有几个属性的类,一对是字符串数组。当以下声明:
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 :(得分:0)
MyObj.Str1
是一个字符串(它是一组字符),MyObj.Str1[1]
是该字符串的第二个索引上的字符。您正在为单个字符分配"AAA"
三个元素。如果你试图" 分配一个对象的字符串数组属性的单个元素,这没有任何意义吗?"
答案 1 :(得分:0)
Str1
是您public string[] Str1 {
发布的属性名称,返回string[]
。所以,当你说MyObj.Str1[1] = "AAA";
时,你实际上是在尝试设置由Str1
属性返回的数组元素而不是属性本身,因此语句MyObj.Str1 = arr1;
可以正常工作。