.NET功能和C#功能有什么区别? (请举例)

时间:2013-03-18 09:35:35

标签: c# .net clr

我觉得这经常被误解,我总是在两者之间感到困惑。 当我们说CLR功能(.NET功能)或C#功能时,它们是相同的还是它们不同

编辑: 我觉得大多数人都误解了我的问题。我不是要问C#和.NET之间的核心区别,而是对功能明智的分类并不感兴趣。像垃圾收集是一个CLR功能或匿名类型是语言功能,所以等等

1 个答案:

答案 0 :(得分:7)

在语言功能,库功能和运行时功能之间非常清楚。

一些例子:

  • null-coalescing ??运算符,partial class和lambda表达式完全是语言功能
  • 垃圾收集几乎是一个纯粹的运行时功能;语言通过终结器与它进行交互,但这都是
  • 泛型是语言和运行时功能的混合体 - 虽然值得注意的是CLR在F#暴露之前显着支持泛型差异。当然,图书馆使用泛型。
  • Nullable类型是所有三种类型的混合:CLR需要知道它们用于装箱目的(以及对泛型的结构约束),Nullable<T>类型本身在库中定义,并且C#语言支持对于他们以各种方式(例如使用?类型后缀)