1
myObject.rect.X = 100
myObject有一個名爲rect的屬性(它是一個Rectangle)。在運行期間,我希望chage這個矩形的X位置,但我給出了這個錯誤:訪問矩形的值?
表達式是一個值,因此不能作爲賦值的目標。
那麼,我該如何改變這些值呢?
myObject.rect.X = 100
myObject有一個名爲rect的屬性(它是一個Rectangle)。在運行期間,我希望chage這個矩形的X位置,但我給出了這個錯誤:訪問矩形的值?
表達式是一個值,因此不能作爲賦值的目標。
那麼,我該如何改變這些值呢?
我假設你在說這裏是System.Drawing.Rectangle
。 Rectangle
是一個值類型(VB.NET中的Structure
),所以當您通過myObject.rect
屬性訪問它時,會在本地獲得它的一個副本。由於您擁有值的副本而不是對實例的引用,因此無法對其進行更新。
如果你想改變myObject
的Rectangle
屬性,你可以更新myObject
指一個新建Rectangle
與你的願望值。例如:
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)
您確定這是產生錯誤的行嗎?您可能需要提供更多代碼。 – 2011-04-14 01:30:56
[Expression是一個值,因此不能作爲賦值的目標]的可能重複(http://stackoverflow.com/questions/681464/expression-is-a-value-and-therefore-cannot-be-the-目標的-AN-分配) – 2011-04-14 01:45:17