为什么 .NET不对不能为负数的属性使用无符号整数类型(如uint
( UInt32
) 或ushort
( )),如和。事实上,在我的记忆中,我从未见过它们在 FCL 中使用过。我们什么时候应该使用它们?UInt16
DateTime.Year
DateTime.Month
问问题
86 次
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 回答