rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能まとめ(名前とリンク)

 C# 2.0 以降の新機能の名前と公式ガイドページへのリンクをまとめました。

 注1)機能の名前はできるだけ公式ガイドから言葉を拾うようにしましたが、完全ではありません。
 注2)リンク先ページはできるだけ日本語ページを拾うようにしましたが、見つけられずに英語のページもあります。
 注3)良さそうなページを探しましたが、もっと良いページがあるかもしれません。

■ イベント

 この記事は次のイベントの準備としてまとめています。

■ 関連リンク

 ・C# 2.0 以降の新機能まとめ(概要とコード)

■ C# 2.0 での新機能

・ジェネリック
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/
・匿名メソッド
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-methods
・反復子 (yield)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/iterators
・部分型定義 (Partial クラス/構造体)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/partial-type
・Null 許容型 (Nullable)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/nullable-types/
・?? 演算子
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/null-conditional-operator
・プロパティの get/set 個別のアクセスレベル
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility
・static クラス
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members
・:: 演算子
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/namespace-alias-qualifer
・extern エイリアス
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/extern-alias
・#pragma プリプロセッサディレクティブ
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-pragma
・Conditional 属性
 https://msdn.microsoft.com/ja-jp/library/aa664622(v=vs.71).aspx
・固定サイズ バッファー (fixed)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/unsafe-code-pointers/fixed-size-buffers
・デリゲートの分散 (共変性と反変性)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/covariance-contravariance/using-variance-in-delegates

■ C# 3.0 での新機能

・型推論 (var)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/var
・拡張メソッド
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
・ラムダ式
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions
・LINQ
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq
・オブジェクト初期化子
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers
・匿名型
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types
・配列の型推論 (暗黙的に型指定される配列)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/implicitly-typed-arrays
・自動実装プロパティ
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties
・Partial メソッド
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/partial-method

■ C# 4.0 での新機能

・dynamic 型
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/dynamic
・省略可能な引数 (オプション引数)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments
・名前付き引数
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments
・ジェネリックの共変性と反変性
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/in-generic-modifier
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/out-generic-modifier
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/covariance-contravariance/variance-in-generic-interfaces

■ C# 5.0 での新機能

・非同期処理 (async/await)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/async/
・呼び出し元情報の属性 (CallerMemberName など)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/caller-information

■ C# 6.0 での新機能

・自動実装プロパティ get アクセサーのみの宣言
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties
・自動実装プロパティの初期化
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties
・get アクセサーのみの自動実装プロパティ を式本体の定義
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/properties
・式形式のメンバー
 https://docs.microsoft.com/ja-jp/dotnet/csharp/methods#expr
・using static ディレクティブ
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-static
・Null 条件演算子
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/null-conditional-operators
・挿入文字列
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/interpolated-strings
・例外をフィルター処理する述語式 (when)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/try-catch
・nameof
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/nameof
・catch/finally ブロック内での await
 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-6#await-in-catch-and-finally-blocks(英語)
・インデックス初期化 (Dictionary 初期化)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/object-and-collection-initializers
・拡張メソッドでコレクション初期化子
 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-6#extension-add-methods-in-collection-initializers(英語)
・オーバーロードの解決の改善
 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-6#improved-overload-resolution(英語)

■ C# 7.0 での新機能

・out 変数をメソッド呼び出しの引数リスト内で宣言 (Out variables)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/out-parameter-modifier
・タプル (Tuples)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/tuples
・パターンマッチ (Pattern matching)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/pattern-matching
・参照返り値と参照ローカル変数 (Ref returns and locals)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#ref-locals-and-returns(英語)
・ローカル関数 (Local functions)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#local-functions
・分解 (Deconstruction)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/tuples
・式形式のメンバーの追加 (More expression bodied members)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members(英語)
・throw 式 (Throw expressions)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/throw
・一般的な型での非同期メソッドの戻り値 (ValueTask)(Generalized async return types)
 https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7#generalized-async-return-types(英語)
・数値リテラルの表記の改善 (Literal improvements)
 https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#numeric-literal-syntax-improvements

■ 参考文献

 上記まとめの作成に、次のサイトを大いに参考にさせていただきました。

C# のガイド | Microsoft Docs

C# によるプログラミング入門 | ++C++; // 未確認飛行 C