1
myObject.rect.X = 100
myObjectには、rect(Rectangle)というプロパティがあります。実行時にこのような四角形のX位置を変更したいが、このエラーが発生する:矩形の値にアクセスしますか?
式は値であるため、代入の対象にすることはできません。
次に、このような値をどのように変更する必要がありますか?
myObject.rect.X = 100
myObjectには、rect(Rectangle)というプロパティがあります。実行時にこのような四角形のX位置を変更したいが、このエラーが発生する:矩形の値にアクセスしますか?
式は値であるため、代入の対象にすることはできません。
次に、このような値をどのように変更する必要がありますか?
あなたはここでSystem.Drawing.Rectangle
について話しているとします。 Rectangle
は値型(VB.NETではStructure
)なので、myObject.rect
プロパティでアクセスすると、ローカルにそのコピーが取得されます。インスタンスへの参照ではなく値のコピーがあるため、インスタンスを更新することはできません。
あなたはmyObject
のRectangle
プロパティを変更したい場合は、あなたが望む値で新しく構築Rectangle
を参照するためにmyObject
を更新することができます。例:
Dim myObject As MyObject = New MyObject()
' Prints 0
Console.WriteLine(myObject.rect.X)
' Refer to a new rectangle with X=100 and all other values kept the same
myObject.rect = New Rectangle(
100,
myObject.rect.Y,
myObject.rect.Width,
myObject.rect.Height
)
' Prints 100
Console.WriteLine(myObject.rect.X)
エラーが発生していますか?より多くのコードを提供する必要があるかもしれません。 –
[Expressionは値であるため、代入の対象にすることはできません](http://stackoverflow.com/questions/681464/expression-is-a-value-and-therefore-cannot-be-the-割り当ての対象) –