2022年01月31日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 521 count

nameof式: あなたの名前そのものが欲しいのです

Written By: 川俣 晶連絡先

この章のテーマ §

 nameof式について学びます。

前提知識 §

Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, int型, byte型

解説 §

 nameof式は、nameof(名前)と書き、その名前を文字列として得ます。

 たとえば変数aがあると、nameof(a)は"a"となります。

 そのような機能にどんなメリットがあるのかと言えば、CTRL+R, Rキーによる名前変更などを行うとその名前も確実に変更されます。単に文字列として書いておくと変更されません。

 たとえば、サンプルソースのConsole.WriteLine($"{nameof(sample)}の値は{sample}です。");のような行は、変数名がどう書き換えられても常に正しい対応関係を保ちます。

 ソースコードはどんどん書き換えられていくものだと思うと、地味ですが割と便利です。

罠の数々 §

  • サンプルソースのbyte.MaxValueのようなドット区切りの場合は最後の項目の名前だけを扱う。つまり、これは"MaxValue"という文字列になる
  • @変数名のように、エスケープされた名前の場合、エスケープ文字@は除外した名前の文字列が得られる

参考リンク §

nameof 式 (C# リファレンス)

サンプルソース: kw_nameof §

var sample = 123;

Console.WriteLine($"{nameof(sample)}の値は{sample}です。");

Console.WriteLine($"{nameof(byte.MaxValue)}の値は{byte.MaxValue}です。");

実行結果 §

sampleの値は123です。

MaxValueの値は255です。

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 以下のプログラムの実行結果を予測してみよう。

Console.WriteLine(nameof(123));

  1. 何も出力しない
  2. 123
  3. "123"
  4. コンパイルエラー
  5. 実行時例外

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2022年
02月
01日
partial: partialクラスとpartialメソッドは似ているが違う
3days 2 count
total 602 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2022年
01月
30日
namespaceキーワードとusingディレクティブ: 名前空間は名前の衝突を解決する
3days 2 count
total 497 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20220131145652
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.