他の業界の人に通じないことがたまにあったりします。業界の用法みたいです。元々の意味は「債務不履行」とか「怠慢」です。2012年頃に某国の財務破たんで有名になった金融用語の「デフォルト」と同じ単語です。「失敗(fault)に陥る(de)」とかになります。頃には、既定値を作るための構文がありませんでした。いったように、個別に既定値相当の値を与える必要がありました。埋め)を作るという仕様がありました。どんな型でも一律既定値を作れる構文が必要になりました。以下のような場面で困りました。キーワードを使った既定値の作成機能です。構造体に引数なしのコンストラクターを定義できませんでした。的にはそんな制限はありません。構造体には引数なしのコンストラクターが定義できない」って仕様は今となっては不要だったりします。以下のよう使い分けれていいはずです。構造体に引数なしのコンストラクターを定義できるようになりました。この場合はコンストラクターが呼ばれるようになった。一度検討されたんですが、その時にはいくつかバグを踏んでしまって撤回されました。この時踏んだバグは以下のようなものです。T()で正しくコンストラクターを呼ばれない場面があった。.NETランタイムの中でそういうコードがあって、C#よりも上のレイヤーでの回避ができない。Activatorクラス(System名前空間)のCreateInstanceとかがそう。7.1これまでのdefault(T)という構文では、型名が長い時にかなり煩雑なコードになっていました。7.1では、左辺(代入先)から推論できる場合に、(T)を省略してdefaultだけで既定値を作れるようになりました。既定値をよく使う割に型名が長くてうっとおしいものの代表格に、CancellationToken構造体(System.Threading名前空間)があります。以下のような感じのコードを書くことが結構あったりします。7.1では、以下のように書き直せます。!=演算子の右側にdefaultとだけ書かれています。いずれも、引数cの型からCancellationToken構造体であることが推論できるので、(CancellationToken)の部分を省略できます。literal)と呼びます。常に定数扱いされます。意味じゃなく、const)しか受け付けない文脈がいくつかあります。要は、コンパイル時に確定してないといけない部分なんですが、例えば以下のようなものがあります。クラスと構造体は既定値(null、default(T))しか渡せません。構造体でもフィールドの明示的な初期化が不要になりました。クラスと同じく、明示的に代入しなかったフィールド・自動プロパティには既定値が入ります。