2016-08-12 65 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

謝謝你解釋得很好。 –

相關問題