gamebox

unityとかゲームとか

【unity】nameof超便利! C# 6.0【c#】

nameof 演算子

C#6で、nameof 演算子が追加されましたが、これが超便利!

もちろんunityでも使うことができます。

※unityのc#6対応についてはこちらに記述されています

C#6.0時代のUnity

 

C# 6 で、nameof 演算子(nameof operator: "name of X" (Xの名前)を1キーワード化したもの)というものが追加されました。 変数や、クラス、メソッド、プロパティなどの名前(識別子)を文字列リテラルとして取得できます。

 

・サンプルコード

using System;

class MyClass
{
    public int MyProperty => myField;
    private int myField = 10;

    public void MyMethod()
    {
        var myLocal = 10;
        Console.WriteLine(nameof(MyClass));
        Console.WriteLine(nameof(MyProperty) + " = " + MyProperty);
        Console.WriteLine(nameof(myField) + " = " + myField);
        Console.WriteLine(nameof(MyMethod));
        Console.WriteLine(nameof(myLocal) + " = " + myLocal);
    }
}

 

・結果

MyClass
MyProperty = 10
myField = 10
MyMethod
myLocal = 10

 

変数名などを文字列として取得できるので、変数名をそのままPlayerPrefsのキーとしたり、Dictionaryのキーとしたりできます。

また、リファクタリングした時にも自動で置き換わるので便利です。

みんなも使おう nameof。