[ C# ] クラス名やメソッド名を取得する2通りの方法(nameof演算子とリフレクション)

Pocket

ここでは、クラス名やメソッド名を取得する2通りの方法を掲載しています。1つ目はリフレクションを用いた方法で、2つ目は、Visual Studio 2015 (C# 6.0 ) で利用可能になった nemeof 演算子を用いる方法です。

スポンサーリンク


クラス名、メソッド名を取得するサンプル

ネームスペース、クラス名、メソッド名を取得するサンプルコードになります。詳細はコメントを参照ください。

using System.Reflection;

namespace WindowsFormsApplication17
{
    public partial class Form1 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            // ネームスペース
            string nameSpace = this.GetType().Namespace;
            // クラス名
            string className = this.GetType().Name;
            // ネームスペース+クラス名
            //string className = this.GetType().FullName;
            // メソッド名 using System.Reflection が必要
            string methodName = MethodBase.GetCurrentMethod().Name;

            // WindowsFormsApplication17 : Form1 : button1_Click
            Console.WriteLine("{0} : {1} : {2}", nameSpace, className, methodName);

            // ネームスペース
            nameSpace = nameof(WindowsFormsApplication17);
            // クラス名
            className = nameof(Form1);
            // メソッド名
            methodName = nameof(button1_Click);

            // WindowsFormsApplication17 : Form1 : button1_Click
            Console.WriteLine("{0} : {1} : {2}", nameSpace, className, methodName);
        }
    }
}

 

スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>