6
我有以下2層結構,我真的不明白,爲什麼第二個不工作:結構中的屬性:「表達式是一個值,因此不能作爲賦值的目標。」
Module Module1
Sub Main()
Dim myHuman As HumanStruct
myHuman.Left.Length = 70
myHuman.Right.Length = 70
Dim myHuman1 As HumanStruct1
myHuman1.Left.Length = 70
myHuman1.Right.Length = 70
End Sub
Structure HandStruct
Dim Length As Integer
End Structure
Structure HumanStruct
Dim Left As HandStruct
Dim Right As HandStruct
End Structure
Structure HumanStruct1
Dim Left As HandStruct
Private _Right As HandStruct
Public Property Right As HandStruct
Get
Return _Right
End Get
Set(value As HandStruct)
_Right = value
End Set
End Property
End Structure
End Module
更詳細的解釋:我有一個使用的結構有些過時代碼而不是類。所以我需要確定一個當這個結構的一個字段變成錯誤值的時刻。
我的調試解決方案是用相同名稱的屬性替換結構,然後我只是在屬性設置器中設置一個斷點來識別我收到錯誤值的時刻......爲了不要重寫所有代碼....僅用於調試目的。
現在,我面臨上面的問題,所以我不知道該怎麼辦......只有設置斷點這個結構的成員被分配到任何地方,但是這個賦值有很多行......
謝謝凱文。我加了一點解釋爲什麼我做了這個測試。 – serhio
@serhio沒問題,當從結構類型中創建屬性時,總會出現這種情況(例如'TimeSpan')。 IIRC它曾經不是一個編譯錯誤,只是簡單地不起作用,這可能更令人沮喪。 –
getter返回這個結構的副本......我可以強制它「byref」嗎? ) – serhio