ホームページ > バックエンド開発 > C++ > C# リフレクションは呼び出しメソッドの名前と型を明らかにできますか?

C# リフレクションは呼び出しメソッドの名前と型を明らかにできますか?

Susan Sarandon
リリース: 2024-12-30 20:45:10
オリジナル
614 人が閲覧しました

Can C# Reflection Reveal the Calling Method's Name and Type?

リフレクションによる呼び出しメソッドの詳細へのアクセス

質問:

C# でのリフレクションは利用できますか現在のメソッドを呼び出したメソッドの名前とタイプを取得します。方法?

答え:

はい、可能です。これを実現する方法のコード デモを次に示します。

public class SomeClass
{
    public void SomeMethod()
    {
        StackFrame frame = new StackFrame(1);
        MethodBase method = frame.GetMethod();
        Type type = method.DeclaringType;
        string name = method.Name;
    }
}
ログイン後にコピー

次の追加クラスを考えてみましょう。

public class Caller
{
    public void Call()
    {
        SomeClass s = new SomeClass();
        s.SomeMethod();
    }
}
ログイン後にコピー

このシナリオでは、変数の名前と型には値 " が割り当てられます。それぞれ「呼び出し」と「呼び出し元」。

.NET 用の更新4.5:

.NET 4.5 で導入された CallerMemberNameAttribute により、このプロセスが簡素化されます。以下の変更された SomeClass では:

public class SomeClass
{
    public void SomeMethod([CallerMemberName]string memberName = "")
    {
        Console.WriteLine(memberName); // Outputs the calling method's name
    }
}
ログイン後にコピー

これにより、StackFrame メソッドと GetMethod() メソッドが必要なくなります。

以上がC# リフレクションは呼び出しメソッドの名前と型を明らかにできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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