私は彼らがそれを変更したとは言いませんが、私たちはいくつかの新しい構文オプションを教えてくれたと思います。 getterとsetterを宣言する "古い"方法を使用することもできますが、これを行うためのより機能的なプログラミングスタイルもあります。 C#6で、Microsoftはすでにゲッターのための式を用いて導入やっ専用のプロパティ:
public int SomeProp => someMethod();
C#7は、それはゲッターとセッターのために使用されることを可能にするこのサポートを強化しました。これの素晴らしい点の1つは、新しい「スロー式」機能で、簡潔な構文を作ることができます。たとえば、あなたがする前に。
我々は今、これを簡略化することができ
private string _name;
public string Name
{
get
{
return _name;
}
set
{
if (value == null)
throw new ArgumentNullException(nameof(Name));
_name = value;
}
}
:でも、セッターラムダをすることなく
private string _name;
public string Name {
get => _name;
set => _name = value ?? throw new ArgumentNullException(nameof(Name));
}
は確かに、あなたがthrow式を行うことができますが、あなたが見ることができるように、シンプルなもののため、落札構文は非常に簡潔です。
他のものと同様に、あなたのアプリケーションをコーディングする人のために最もわかりやすい構文を使用してください。マイクロソフトは、C#にますます機能的なプログラミングスタイルの機能を追加しようとしています。これはもう一つの例です。醜い/混乱している/必要のないことがわかった場合は、既存の方法で必要なものすべてを絶対に達成することができます。別の例として、while
とdo while
ループがあるのはなぜですか?私は正直言って私がdo while
ループを私のキャリアで5回使用したと言うことができます。 while
ループはすべてdo while
という異なる構文を持つことができます。しかし、do while
を使用するとコードを読みやすくすることがあることに気付くことがあります。