C#7.0の新機能とシンタックスシュガーコメント

Visual Studio 2017のリリースに伴われ、C#7.0が正式に仕事に行きます。C#、C#の開発者の旧バージョンと、すでにお馴染みの場合7.0は、プログラミングの効率を改善し、大部分のエラー率を減らすことができ、多くの新機能や糖衣構文を追加しました。図9は、分析のC#7.0を改善するために、本明細書に記載されるであろう。

 

1、タプル - 戻り値の複数のより洗練され

そのためのC#プログラミングの経験の改善の最初の場所でのタプルは、あまりにも偉大である理由。過去のタプルの概念はC#を導入されていたが、それは達成するためにタプルと呼ばれる汎用的なクラスです。このジェネリッククラスは同様の効果タプルを達成することができますが、読みやすさは本当に悪いです、最後に関数がリターンであるかを理解するために、完全にコードを通して方法はありません使用している間、これは人に優しいパラメータ名でなければなりませんになっていましたアイテム1、アイテム2など抽象的な名前。それは、このため、開発者は一般的に複数の値を返すために使用される構造の独自の定義を好むもあります。

C#7.0で導入されたタプル構文を使用すると、より優雅に、このタスクを達成することができます。あなたはこの方法で関数の戻り値の型で表現することができます。

 

外部のコードでは、あなたはタプル型の複数の値にアクセスすることができます含まれています。

 

アイテム1、アイテム2、ITEM3と、以前のバージョンよりも、このC#は、より直感的なタプル要素法を表現するために、あなたは読む必要はありません、読み取りは、その関数が返すものの順序を確認するために戻って行きます。

あなたは、推論と匿名のタプル型を入力したくない場合はもちろん、あなたは、このようなタプルを分解することができます:

タプルを使用しての前提は、あなたは、Microsoftの公式からSystem.ValueTupleパッケージを引用しました:

 

2、ローカル機能 - 新しい方法関数スコープ

それは見つけるのは簡単ですので、与えられたタプルの脳は、爆発するかもしれない - 理解しやすい新機能でローカル関数を、。要するに、我々は今、関数内で関数を定義することができ、通常の関数で、この関数は外側の関数にアクセスすることができます。直接の例に:

 

参照渡し3、および参照を返す - 参照によって渡された値の種類を心配する必要はありません

C#の友人に泊まったが、確かに知っオペランドが値型であれば、その代入演算子(等号)は、デフォルトの配信は、この型の値であり、時には、我々はC#の「スマートaleck」価値を提供する私たちを与える、と希望を望んでいません基準値のこの型を渡します。C#7.0では、Microsoftは私たちが値の代わりに参照を渡すことを示すために、活用されていないキーワードREFのを再利用します。以下は例です:

このプログラムの出力は、通常はゼロとみなされない、3です。その理由は、フレーズの割り当ての真ん中にあり、我々はC#を伝える、我々は参照ではなく、値を渡す必要があります。それではbの値への変更が、同期の値が変更します。

同様に、我々は代わりに、その値の値型への参照を返す関数を作成するのと同じ方法を使用することができます。

 

比較し、一致する新しい方法 - 4モード

言語ベースの種類としては、「シール」と、確かに人気の「ボックス化解除」操作。開梱する前に、私たちは多くの場合、最後に例のタイプを決定する必要があります(オペレータである)ものです。C#がテンプレートの以前のバージョンを持って書かれた式である:シールの第一のタイプが決定されると、オペレータであり、オペレータが開梱できます。今、テンプレート構文のこのタイプは、ケースに省略することができます。

また、C#7.0を使用すると、条件の結果を開梱時に定義するために、シールタイプの量、および使用のキーワードを決定するために、スイッチ/ case文を使用することができる「パターンマッチング」と呼ばれるこの事を、置きます。例えば:

 

5、直接定義された変数--outシンタックスシュガー

以前に出た引数を持つ関数の使用で定義されたパラメータアウト良い、我々は最初の関数に渡され、割り当てる必要があります。今、あなたは直接のパラメータの定義のうち転送することができたときに:

 

6、汎用非同期戻り値の型

一般的に、非同期メソッドの戻り値の型はvoidでなければならない、またはタスクタスク、このアプローチの大きな欠点は、待機の場合には、非同期になるということですが、結果はタスクの割り当てに利用されています。C#7.0は、上記の問題を解決するために、ValueTaskジェネリック型を追加し、それが顕著にプログラムの非同期部分の性能を向上させることができます。簡単に言えば、ValueTaskは非同期メソッドのための待ち時間がまったく同じ手順を行っ毎回同じではありませんキャッシュの値のためにすでに利用可能なキャッシュを作成します。例えば、子供の長さが長くなる場合、そのMSDNへの独自のアクセス皆を喜ばせます。

 

7、表現--λ糖衣構文は今、より多くの機能をサポートしています

C#7.0、コンストラクタ、デストラクタ、およびプロパティアクセサλ式を用いてもよいで、例えば:

 

8、糖衣構文 - 異常発現

new演算子??(クエスチョンマーク2ハーフサイズ)は、参照がnullの場合に例外を発生させるために使用されます。

 

あなたはデジタル可読性の強化、アンダースコアを追加することができます - 9、シンタックスシュガー

C#7.0は現在、1234_5678と12345678の数であると信じています。これは、アンダースコアが無視されている数字です。

要約:

C#7.0追加された新機能とシンタックスシュガーは、エラー率を減らすために私たちのプログラミングの効率化だけでなく、より助長を強化するために非常に有効であることができます。将来の仕事のための大きな助けをもたらすでしょう、それらを理解します。

おすすめ

転載: www.cnblogs.com/codedisco/p/12543698.html