0

为什么 .NET不对不能为负数的属性使用无符号整数类型(如uint( UInt32) 或ushort( )),如和。事实上,在我的记忆中,我从未见过它们在 FCL 中使用过。我们什么时候应该使用它们?UInt16DateTime.YearDateTime.Month

4

1 回答 1

3

引用“语言独立性和与语言无关的组件

.NET Framework 与语言无关。这意味着,作为开发人员,您可以使用多种面向 .NET Framework 的语言之一进行开发,例如 C#、C++/CLI、Eiffel、F#、IronPython、IronRuby、PowerBuilder、Visual Basic、Visual COBOL 和 Windows电源外壳。您可以访问为 .NET Framework 开发的类库的类型和成员,而不必知道它们最初是用什么语言编写的,也不必遵循任何原始语言的约定。如果您是组件开发人员,则任何 .NET Framework 应用程序都可以访问您的组件,无论其语言如何。

并非所有语言都支持无符号整数,因此在公共或受保护方法中使用无符号整数会使您的代码不符合 CLS。您可以在私人和内部成员上使用它们,但不能在公共或受保护成员上使用它们。正因为如此,.NET 框架试图使其所有的公共方法和成员都符合 CLS,因此它们可以从任何语言中使用。

于 2016-07-19T14:20:59.637 回答