「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。 目次 †概要 †2000年から開発が始まったマイクロソフト(アンダース・ヘルスバーグ率いるチーム)が設計・開発したプログラミング言語。
詳細 †パラダイム †マルチパラダイム
型付け †強い静的型付け †マネージ型・アンマネージ型 †
他の言語との関係 †影響を受けた言語 †C++, Delphi, Eiffel, Java, LISP 影響を与えた言語 †D言語, F#, Java, Nemerle, Vala その他 †プラットフォーム †Windows, macOS, Linuxなど ライセンス †Apacheライセンス (Roslyn) スニペット †忘れ易いスニペット置き場が欲しかったので。 変数定義 †var †型推論を利用したローカル変数の宣言。 var her = new { Name = "Jane Doe", Age = 20 } var him = new { Name = "John Doe", Age = 20 } dynamic †
ref変数 †値型を参照型として扱う。 // ref戻り値をref変数で受け取る ref int max = ref Max(ref x, ref y); // limitとmaxは同じ値を参照する ref int limit = ref max; クラス定義 †部分型 †開発ツールなどが裏で使用していることが多い。 class MyClass { int a; int b; } ↓↓↓ partial class MyClass { int a; } partial class MyClass { int b; } プロパティ †自動実装プロパティ †メンバ変数+プロパティ・プロシージャの略記が可能。 private int __value; public int Value { get { return __value; } private set { __value = value; } } ↓↓↓ public int Value { get; private set; } メソッド定義 †オプション引数 †public int MethodB(int A = 0, int B = 0, int C = 0) { return A + B + C; } ref戻り値 †ref変数で受け取る場合、 名前付き引数 †上記のオプション引数を選択的に指定できる。 public void MethodA() { // 第1引数と第2引数を指定、第3引数は未指定: Console.WriteLine("Ans: " + MethodB(1, 2)); // Ans: 3 … 1 + 2 + 0となっている // 第1引数と第3引数を指定、第2引数は未指定: Console.WriteLine("Ans: " + MethodB(A: 1, C: 3)); // Ans: 4 … 1 + 0 + 3となっている } ジェネリック †クラスでも使用可能。STLっぽく書く(コンセプトは違うっポイ)。
匿名デリゲート †ラムダ式 †匿名デリゲートに次ぐ「delegate」の拡張。
上記のように「Action、Funcのデリゲートの型」を使用する。 拡張メソッド †
非同期処理 †初期化 †配列 †
オブジェクト †
自動実装プロパティ †C#6から自動実装プロパティの初期化が可能。 class Class1 { public string Auth { get; set; } = "BlahBlah"; } 演算子 †typeof †
System.Type type = typeof(int);
sizeof †
nameof †
as, is式と拡張 †
条件分岐 †switch文と拡張 †C#では、break;を明記するものの、フォールスルーを禁止されている。
三項演算子 †以下の例で、始めにaを評価してその評価値が、
null結合演算子 †
参考 †
LINQ †ラムダ式って †拡張メソッド † |