編輯在看看回應意見:
示例:如何知道寬度或高度何時更改?這甚至有可能嗎?
不,這是不可能的。但是,這並不重要。
當您從班級中返回Size
,因爲Size
is a struct
,您將返回一個副本。即使用戶更改了您返回的Size
中的Width
或Height
,也不會影響您班級中的mySize
結構。
爲了改變你的尺寸,他們需要改變整個事情,即:
var temp = yourClass.MySize;
temp.Width = newWidth;
yourClass.MySize = temp; // The user will need to assign an entire Size
至於你應該關注的Size
屬性是有效只讀的,因爲System.Drawing.Size
是值類型。
原來的答覆,如果假定寬度和高度分別爲用戶類的屬性:
主要有兩種選擇 - 而不是存儲
你可以計算在飛行的大小,它的基礎上,你的寬度和高度:
public Size MySize
{
get {
return new Size(Width,Height);
}
set {
Width = value.Width;
Height = value.Height; // Set Width/Height appropriately
}
}
另一種選擇是重新計算你的尺寸在你的屬性設置寬度和高度:
public double Width
{
get { return width; }
set
{
width = value;
mySize = new Size(width, Height); // Compute new size, so it's always correct
}
}
最後,如果你使用像INotifyPropertyChanged
東西來追蹤變化,你也可以訂閱自己PropertyChanged
事件,如果它是適當的屬性,重新計算你的尺寸。
你可以在那裏創建自己的活動。 .NET有一個可以用作基礎的「OnPropertyChanged」事件。 –
是你的類或框架的大小? – cadrell0
您可能需要使用[PropertyChangedEventHandler](http://msdn.microsoft.com/en-us/library/system.componentmodel.propertychangedeventhandler.aspx) –