C#8.0の新機能

C#8.0には、拡張の数を提供します

01読み取り専用のメンバー
することができます  readonly 修飾子は、構造体の任意のメンバーに適用されます。 これは、メンバーが状態を変更しないことを示しています。 この比率はなり  readonly 修飾子はで使用される  struct より洗練された声明。 次の変数を考慮してください。
パブリック 構造体ポイント
{ 
    公共 ダブル X { 取得しますセット; }
     公共の 二重 Y { 得ますセット; }
     公共の 二重距離=> Math.Sqrt(X * X + Y * Y)。

    パブリック オーバーライド 文字列のToString()=> $ " ({X}は、{Y})は、原点からの距離{}です" 
}

同じ構造のほとんどのように、  ToString() この方法は、状態を変更しません。 これは、することによって得ることができる  readonly ために修飾子を追加し  ToString() 、このステートメントを示します。

公共の 読み取り専用 オーバーライド 文字列のToString()=> $は、" ({X}は、{Y})は、原点からの距離{}です"

これらの変更は、ため、コンパイラの警告が生成されます  ToString アクセス  Distance としてマークされていない属性  readonly

CS8656警告:非ために呼び出して、読み取り専用メンバーをPoint.Distance.get  から読み取り専用メンバーの結果における暗黙のコピーこの

あなたは、コンパイラの守備のコピーを作成する必要がある場合は警告を発行します。 Distance プロパティは、状態を変更しない、することができるので  readonly 、この警告文を修正するための修飾子を追加するために使用します:

公共の 読み取り専用 ダブルの距離=> Math.Sqrt(X * X + Y * Y);

ことに注意してくださいreadonly 読み取り専用属性のための修飾子が必要です。 その負いませんコンパイラ  get の状態を変更しないアクセスが、明示的に指定する必要があります  readonly。 コンパイラは、次のルールを適用します:readonly メンバーが状態を変更しません。削除しない限り  readonly 修飾子、それは次のメソッドをコンパイルしません。

公共の 読み取り専用の ボイド(翻訳INT xOffsetプロパティ、INT yOffsetの)
{ 
    X + = xOffsetプロパティ。
    Y + = yOffsetの。
}

この機能を使用するには、コンパイラが意図に基づく意思と最適化を強制することができ、設計意図を指定することができます。

デフォルトインターフェイスの02のメンバー

あなたは今のインターフェイスにメンバーを追加し、これらの部材の実装を提供することができます。 この言語機能を使用すると、APIの作者は、現在実装されているこのインタフェースを持つソースまたはバイナリ互換性を破壊することなく、インターフェイスの新しいバージョンにメソッドを追加することができます。 既存の実装は、デフォルトの実装を継承します。 この関数は、C#はAndroidやスウィフトのためのAPIと相互運用することができます、そのようなAPIは、同様の機能をサポートしています。 デフォルトのインターフェイスのメンバーも同様の「機能」言語機能のプログラムをサポートしています。

デフォルトのインターフェイスのメンバーは、多くのプログラムや言語要素に影響を与えます。参照してください。デフォルトの実装の更新インタフェース

より多くの場所で使用されている03以上のモデル
04文を使用して、
05静的ローカル関数
06使い捨てrefの構造
07参照型は空にすることができます
08非同期ストリーム
09インデックスと範囲

おすすめ

転載: www.cnblogs.com/SavionZhang/p/11201818.html