【问题标题】:c#, class with properties of type string array, set not workingc#,具有字符串数组类型属性的类,设置不起作用
【发布时间】:2016-12-20 00:46:00
【问题描述】:

我有一个有几个属性的类,其中几个是字符串数组。当如下语句:

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

所有这一切让我觉得我不能做我想做的事。您可以分配对象的字符串数组属性的单个元素吗?

【问题讨论】:

    标签: c# arrays class properties set


    【解决方案1】:

    MyObj.Str1 是一个字符串(它是一组字符),MyObj.Str1[1] 是该字符串第二个索引上的字符。您将"AAA" 三个元素分配给一个单个字符。如果您尝试“分配对象的字符串数组属性的单个元素?

    ,这没有任何意义

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您解释得这么好。
      猜你喜欢
      • 2011-08-26
      • 2018-09-01
      • 2022-09-26
      • 2019-09-05
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      相关资源
      最近更新 更多