[C#6.0]nameof演算子

変数名やメソッド、クラス名等の名前が文字列として取得できる関数

ログやエラーメッセージなどに含めておくと、それらがリファクタリングで名前を変えた場合に追従できるのがメリット

また、特定のクラスだったら処理を分岐するといったケースでも直接文字列リテラルとして指定するのではなく

nameof演算子を使っておけば、のちのち変更された場合も動的に対応することができる

こんな感じで、変数名をべた書きしていた場合に、

var data = "abc";

data += DateTime.Now.ToString("yyyy-MM-dd");

Console.WriteLine($"data={data}");

dataって変数名はいくらなんでも抽象的だから名前を変えようってことで一括変換すると


var sampleData = "abc";

sampleData += DateTime.Now.ToString("yyyy-MM-dd");

Console.WriteLine($"data={sampleData}");

リテラルで書き込んでいた変数名が取り残されてしまう

そのため、nameof演算子をつかっておけば


var data = "abc";

data += DateTime.Now.ToString("yyyy-MM-dd");

Console.WriteLine($"{nameof(data)}={data}");

リファクタリングして変数名を変更したとしても


var sampleData = "abc";

sampleData += DateTime.Now.ToString("yyyy-MM-dd");

Console.WriteLine($"{nameof(sampleData)}={sampleData}");

追従させれるので、よからぬ修正がはいらず安心ってことです

投稿日時: 2025-05-17 17:23:17
更新日時: 2025-05-19 11:56:19

内部リンク

Comment

最近の投稿

最近のコメント

タグ

アーカイブ

その他