在使用Visual Studio .NET 2003Visual C# .NET产品时发现一个问题(我用的是英文版本,在同事的中文版本中也存在同样的问题):SqlParameter.IsNullable属性无法在IntelliSense中正确列出(相反,其getter/setter方法却被错误的显示在成员提示中,即get_IsNullable和set_IsNullable)。大概看了一下IsNullable属性和其他属性成员的差别,看来是因为被打上了DesignOnlyAttribute的原因。然而即便如此,属性的两个hidden getter/setter也不应该显示出来啊(这么写也肯定编译不过去)。

 

同样的问题也存在于使用OdbcParameterOleDbParameter时,因此问题可能是双方面的:一是VC#.NETIntelliSenseDesignOnlyAttribute的支持似乎有问题(隐藏属性是对的,因为DesignOnly说明该属性只为设计时期所用,运行期代码中是不该引用的;然而不能因此就把getter/setter方法给列出来);另一方面,从IsNullable的文档来看,这也不应该是一个DesignOnly的属性,因此可能是.NET Framework的一处疏忽。

 

当然,也有可能是我有什么细节不知道的说,如果是这样请一定告诉我啊……