1

私はこれが非常に一般的に誤解されていると感じており、私はいつも2つの間で混乱することになります。CLR機能(.NET機能)またはC#機能と言うとき、それらは同じですか、それとも異なりますか

編集:ほとんどの人が私の質問を誤解しているように感じます。私はC#と.NETのコアの違いを尋ねているのではなく、機能ごとの分類については少し興味がありました。ガベージコレクションがCLR機能であるように、または匿名型が言語機能であるように、などなど。

4

1 に答える 1

7

言語機能、ライブラリ機能、およびランタイム機能の間を非常に明確にする価値があります。

いくつかの例:

  • null 合体??演算子、部分クラス、ラムダ式は完全に言語機能です。
  • ガベージ コレクションは、ほぼ純粋なランタイム機能です。言語はファイナライザーを介して多少やり取りしますが、それだけです
  • ジェネリックは、言語とランタイム機能の混合物ですが、特に CLR は、F# が公開する前にジェネリックの差異を大幅にサポートしていました。もちろん、ライブラリはジェネリックを使用します。
  • Null 許容型は 3 つすべての混合物です。CLR はボックス化の目的 (およびジェネリックの構造体制約) のためにそれらについて知る必要があり、Nullable<T>型自体はライブラリで定義されており、C# 言語はさまざまな方法でそれらをサポートしています (たとえば、?型接尾辞を使用)
于 2013-03-18T09:39:34.533 に答える