ホームページ > バックエンド開発 > C++ > 実行時に C# 変数の名前を取得するにはどうすればよいですか?

実行時に C# 変数の名前を取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-27 03:56:09
オリジナル
317 人が閲覧しました

How Can I Get a C# Variable's Name at Runtime?

リフレクションによる変数名の取得

C# では、コンパイルされた中間言語 (IL) コードで変数が名前なしで表示されることがあります。ただし、式ツリーを利用して変数名を取得するリフレクション手法を利用できます。

次の例を考えてみましょう:

var someVar = 3;

Console.WriteLine(GetVariableName(someVar));
ログイン後にコピー

私たちの目標は、「someVar」を出力することです。

式ツリーの使用

リフレクションでは、次の要素に直接アクセスできません。変数名。代わりに、式ツリーを使用して、変数を名前付きスコープにプロモートするクロージャを作成できます。次のメソッドでこれを実現します。

public static string GetVariableName<T>(Expression<Func<T>> expr)
{
    var body = (MemberExpression)expr.Body;
    return body.Member.Name;
}
ログイン後にコピー

このメソッドを使用するには、ラムダ式内で変数をラップします。

Console.WriteLine(GetVariableName(() => someVar));
ログイン後にコピー

注: このアプローチには次のものが付属します。オブジェクトの作成とリフレクションの大量使用によるパフォーマンスのオーバーヘッド。

C# 6.0代替

C# 6.0 では、nameof キーワードによりこのプロセスが簡素化されます。

Console.WriteLine(nameof(someVar));
ログイン後にコピー

nameof キーワードは、式のパフォーマンスに影響を与えることなく変数名を取得する直接的で軽量な方法を提供します。ツリーメソッド。

以上が実行時に C# 変数の名前を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート