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

标签 c# .net clr

我觉得这是很常见的误解,我总是把两者弄混。 当我们说 CLR 功能(.NET 功能)或 C# 功能时,它们是相同的还是不同的

编辑: 我觉得大多数人都误解了我的问题。我不是在问 C# 和 .NET 之间的核心区别,而是对功能明智的分类有点好奇。就像垃圾回收是 CLR 特性或匿名类型是语言特性,等等

最佳答案

有必要非常清楚语言特性、库特性和运行时特性。

一些例子:

  • 零合并 ??运算符、部分类和 lambda 表达式完全是语言特性
  • 垃圾收集几乎是一个纯粹的运行时特性;语言通过终结器与其进行某种程度的交互,仅此而已
  • 泛型是语言和运行时特性的混合体——尽管值得注意的是,在 F# 公开它之前,CLR 已经显着支持泛型变体。当然,图书馆使用泛型。
  • 可空类型是这三种类型的混合:CLR 需要了解它们以用于装箱目的(以及对泛型的结构约束),Nullable<T>类型本身在库中定义,C# 语言以各种方式支持它们(例如使用 ? 类型后缀)

关于c# - .NET 功能和 C# 功能有什么区别? (请举例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473531/

相关文章:

c++ - 实现 Bind()(LINQ 中的 SelectMany)而不产生 yield (在 C++ 中)

.net - 有没有办法在 VB .Net 函数中返回多种类型? (不是元组,如 PHP 内部函数)

c# - 如何调试 .NET 中的 System.TypeLoadException 错误?

c# - 多个程序集中相同的完全限定类名

c# - .NET 相当于 "net group/domain"?

c# - 如何从 Task.Factory.StartNew<> 获取结果?

C# - 在处理流之前返回内存流字节数组的效果?

c# - 通过 SqlDataReader 将 SQL 数据类型 BIT NOT NULL 转换为 C# 类型 Byte

c# - 虚拟成员是否通过反射调用(在正常情况下)?

c# - C# 中的 CLR 和 DLR 有什么区别?