実践で役立つ C#プログラミングのイディオム/定石&パターン その6
Chapter 4 基本イディオム
イディオムを覚えることで汎用的なコードを書き、コードに統一性を持たせることができます。
Dictionary の初期化
どの言語でも大体このように初期化すると思います。
class Program { static void Main(string[] args) { var dict1 = new Dictionary<string, int>() { { "国語", 80 }, { "数学", 100 }, { "英語", 120 }, }; // C# 6.0 var dict2 = new Dictionary<string, int>() { ["国語"] = 80, ["数学"] = 100, ["英語"] = 120, }; var keys = new string[] { "国語", "数学", "英語", }; foreach (string key in keys) { Console.WriteLine("{0} {1} {2}",key, dict1[key], dict2[key]); } } }
null 合体演算子
null かどうかを判断して条件分岐をさせるときに、?? を使います。
?? 演算子 - C# リファレンス | Microsoft Docs
int? a = null; int b = a ?? -1; Console.WriteLine(b); // output: -1
null 条件演算子
null を代入することができます。
int?[] nums = null; var x = nums?[0]; var y = nums[1]; // エラー
可変長引数 params
var format = "{0:0000}"; WriteLog(format, 1, 2, 3); public static void WriteLog(string format, params object[] args) { foreach(var s in args) { Console.WriteLine(String.Format(format, s)); } }
逐語的リテラル文字列
\ をエスケープ文字として認識させないように、ファイルパスなどの指定は @ をつけます。
文字列 - C# プログラミング ガイド | Microsoft Docs
var path = @"C:\user\temp\sample.txt"
本
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者: 出井秀行
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る