2010-11-24 65 views
0

剛剛花了幾個小時試圖找出爲什麼我的Xml序列化代碼不工作。考慮以下幾點:Option Strict和DefaultValueAttribute

<DefaultValueAttribute(False)> 
Public Property UserName() As String 

爲什麼這是允許的,無論選項嚴格是否在(或不)?

回答

0

答案是,VS不會鍵入檢查VB.NET的默認值,而不管OptionStrict與否。

<DefaultValueAttribute(False)>是有效的,因爲屬性定義實際上是構造函數而不是類型定義,因此它的類型是DefaultValueAttribute而不是返回類型boolean。此外DefaultValueAttribute.Value屬性的類型爲Object,因此它的類型也無法比較,因爲DefaultValueAttribute的存在違反Option Strict On,因此在DefaultValue屬性的範圍內忽略Option Strict

1

非常簡單。 DefaultValueAttribute有一個接受布爾值的重載,所以它可以使用或不使用Option Strict

檢查此頁以獲取更多信息DefaultValueAttribute Class

相關問題