我有一個具有引用類型屬性的用戶控件。 Windows窗體設計器不斷生成將屬性的初始值分配爲空的代碼。我怎樣才能防止這一點?如何防止Windows窗體設計器爲屬性生成默認值分配?
我試着添加重置和ShouldSerialize方法 - 重置有一個空的身體和ShouldSerialize總是返回false - 但沒有奏效。我也應用了BrowsableAttribute並將其設置爲false。
編輯:
屬性的類型是在同一個項目中的類。它不是一個組件或控件,只是從Object繼承的普通類。此外,該屬性的setter使用該屬性的值作爲參數來調用方法,並且該方法不接受null作爲有效參數。
例子:
public MyClass Property1
{
get { return _property1; }
set
{
_property1 = value;
SomeMethod(value); // This method throws ArgumentNullException;
}
}
注:我也知道get和set方法可能會更適合這裏。
請添加一個例子。只是任何ref類型或組件/控件的引用? – 2010-06-02 21:08:04
即使您沒有手動將默認設置爲NULL,對於ref類型,默認仍將隱式爲NULL。你期望它會是什麼? – 2010-06-02 21:39:24
我假設Windows窗體設計器覆蓋您最初寫入控件的值? – Mike 2010-06-02 21:49:30