環境
- Visual Studio 2022
- .NET 6.0
- C#
nameof 、便利ですね。
Console.WriteLine(nameof(System.Threading.Tasks.Task));
と書くと、
Task
と、クラス名が文字列として出力される。 クラス名に限らず変数なども文字列として出力されるけど、こんな書き方も出来た。
class MailSetting { public const string HOST_NAME = nameof(HOST_NAME); }
キー値として使う定数文字列は、 HOST_NAME = "HOST_NAME"
のように 定数 = 定数の文字列
書く事がよくあるけど、 上記のように 定数 = nameof(定数)
も可能なので、下記のように
Console.WriteLine("出力結果:" + MailSetting.HOST_NAME); /// <summary> /// メール設定クラス。 /// </summary> class MailSetting { /// <summary>ホスト名。</summary> public const string HOST_NAME = nameof(HOST_NAME); }
と書くと、
出力結果:HOST_NAME
と、 HOST_NAME
が文字列として出力される事を確認できた。
定数名を変更する場合、 Visual Studio の名前変更機能を使えば定数値も変わる事になり、修正漏れが少なくなる(はず)。