我刚刚花了几个小时试图弄清楚为什么我的Xml序列化代码不能工作。请考虑以下几点:
<DefaultValueAttribute(False)>
Public Property UserName() As String为什么无论option strict是否启用,都允许这样做?
发布于 2010-12-01 13:38:20
答案是,无论是否使用OptionStrict,VS都不会为VB.NET键入检查默认值。
<DefaultValueAttribute(False)>是有效的,因为属性定义实际上是构造函数,而不是类型定义,因此它的类型是DefaultValueAttribute,而不是boolean的返回类型。此外,DefaultValueAttribute的.Value属性是Object类型,因此它的类型也无法比较,因为DefaultValueAttribute的存在违反了Option Strict On,因此在DefaultValue属性的作用域中忽略了Option Strict。
发布于 2010-11-24 19:22:40
很简单。DefaultValueAttribute有一个接受布尔值的重载,因此它可以在启用或不启用Option Strict的情况下工作。
有关更多信息DefaultValueAttribute Class,请查看此页面。
https://stackoverflow.com/questions/4264232
复制相似问题