我觉得这是很常见的误解,我总是把两者弄混。 当我们说 CLR 功能(.NET 功能)或 C# 功能时,它们是相同的还是不同的
编辑: 我觉得大多数人都误解了我的问题。我不是在问 C# 和 .NET 之间的核心区别,而是对功能明智的分类有点好奇。就像垃圾回收是 CLR 特性或匿名类型是语言特性,等等
最佳答案
有必要非常清楚语言特性、库特性和运行时特性。
一些例子:
- 零合并
??
运算符、部分类和 lambda 表达式完全是语言特性 - 垃圾收集几乎是一个纯粹的运行时特性;语言通过终结器与其进行某种程度的交互,仅此而已
- 泛型是语言和运行时特性的混合体——尽管值得注意的是,在 F# 公开它之前,CLR 已经显着支持泛型变体。当然,图书馆使用泛型。
- 可空类型是这三种类型的混合:CLR 需要了解它们以用于装箱目的(以及对泛型的结构约束),
Nullable<T>
类型本身在库中定义,C# 语言以各种方式支持它们(例如使用?
类型后缀)
关于c# - .NET 功能和 C# 功能有什么区别? (请举例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473531/