程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 6.0 (C# vNext) 新功能之:Nameof Expressions

C# 6.0 (C# vNext) 新功能之:Nameof Expressions

編輯:C#入門知識

C# 6.0 (C# vNext) 新功能之:Nameof Expressions


Nameof Expressions 故名思義就是取得名字的表達式。
先看例子:

以前的寫法:
void Foo(Bar bar)
{
    if (bar == null)
    {
        throw new ArgumentNullException("bar");
    }
}

新的寫法:
void Foo(Bar bar)
{
    if (bar == null)
    {
        throw new ArgumentNullException(nameof(bar));
    }
}

透過這種方式,就不需要寫死 "bar" 字符串。當我們重命名 bar 時,程式也能正常的反應正確的名稱。

Nameof 可以用於取得:類名、方法名、參數名、屬性(Attribute)名。
例子如下:

public class MyClass
{
    [TestMethod]
    public static void Show(int age)
    {
        Console.WriteLine(nameof(MyClass)); // 輸出 MyClass 類名
	Console.WriteLine(nameof(Show)); // 輸出 Show 方法名
	Console.WriteLine(nameof(age)); // 輸出 age
	Console.WriteLine(nameof(TestMethodAttribute)) // 輸出 Attribute 名
    }
}

另一個比較實用的情境如下:
class Bar : INotifyPropertyChanged
{
    private int foo;


    public int Foo
    {
        get { return foo; }
        set
        {
            foo = value;
            PropertyChanged(this, new PropertyChangedEventArgs(nameof(Foo));
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;
}

使用 nameof(Foo) 代替字符串 "Foo";

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved