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

Mis*_*sam 1 .net c# clr

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

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

Jon*_*eet 7

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

一些例子:

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