C# ショートコードプログラミング・Effective C#

C# ショートコードプログラミングをサラっと読んでみて気になった部分のみメモしておく。

・使っていない引数を削除する。

・少ない利用ならusing宣言を削除する。

・不要な改行を削除し1行にまとめる。

・メソッドを式化する。

・オーバーロードを引数のデフォルト値で置き換える。

・TryParseと三項演算子
int.TryParse(“a”, out int result) ? result : 99)

・null合体演算子を複数使う。
a ?? b ?? c ?? d

・null合体演算子
左辺がnullでない場合は左辺を返す。
左辺がnullである場合は右辺を返す。
??

・null条件演算子
左辺がnullである場合はnullを返す。
左辺がnullでない場合は右辺を評価する。
?.
?[]

・null合体演算子と条件演算子
string n = user?.Name ?? “名無し”

・型判定と型変換を同時に行う。パターンマッチング。
キャストが可能か判断し可能なら右辺の変数に代入される。
if(x is int y){}
switch(x) {case int i}

・配列の縮小・拡大
Where().ToArray()
Concat().ToArray()
Append().ToArray()
Prepend().ToArray()

・コレクションの間に挿入
x.Take().Append().Concat(x.Skip())

・例外フィルタ
try{} catch() when(){}

・名前が必要ない型はタプル

・string.Formatから文字列補完式
$”{}”

Effective C#の第一章(C#言語イディオム)を読んで一言。

・ローカル変数でvarを利用

・constよりreadonlyを利用

・キャストは()よりisかasを利用

・string.Format()より補完文字列を利用

・シンボルの文字列リテラルはnameofで取得

・クラス間のやりとりにデリゲートを利用

・null条件演算子を利用

・ボックス化、ボックス化解除を避ける。値型>参照型(ボックス化)

・継承したメソッドを再定義しない