私は、次の2つの構造を有する、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
より詳細な説明:私は構造体を使用して、いくつかの時代遅れのコードを持っていますクラスの代わりに。だから私は、この構造のフィールドが間違った値に変化する瞬間を特定する必要があります。
私の解決策は、同じ名前のプロパティーで保存された構造体を置き換えることでした。プロパティーセッターにbreackpointを設定して、誤った値を受け取った瞬間を特定しました...すべてのコードを書き直す....デバッグ目的のために。
今、私は何をすべきかわからないので、この構造体のメンバーが割り当てられているどこにでもブレークポイントを設定するだけですが、その割り当てで多くの行があります...
ありがとう、ケビン。なぜこのテストをしたのか、少し説明を加えました。 – serhio
@serhio問題はありませんが、構造体型(例えば 'TimeSpan'のようなもの)からプロパティを作るときには常に問題があります。 IIRCはコンパイルエラーではなく、単純にうまく動作しませんでしたが、おそらくもっとイライラしました。 –
getterはこの構造体のコピーを返します...私はそれを "byref"に強制することができますか? ) – serhio