2016-10-09 28 views
-1

我看到有人用這種語法get訪問的一類如何使用C#=>操作員返回值get訪問

public int _f; 
public int f 
{ 
    get => _f; 
} 

,而不是

public int _f; 
public int f 
{ 
    get {return _f;} 
} 
的C#源代碼

和我想知道做C#有=>運算符用於簡化

{return x;} 

=> x; 

如果是這是什麼要求?哪個c#版本和哪些命名空間應該使用?

感謝

回答

0

這是C#6.0的新功能。你可以簡單的寫:

public int f => _f; 

,而不是

public int f 
{ 
    get { return _f; } 
} 

請記住,這是可能的,只有屬性爲只讀(它只有get訪問)。當然,而不是_f你可以寫一個表達式返回適當的類型。

+0

我檢查了文檔,你說得對,但是問題是我不能以任何方式編譯這段代碼! 現在我安裝了Visual Studio 2015更新3,我的項目是針對.net 4.6,但是當我編譯該類時它失敗get => ...部分 它說明我在這裏清除了錯誤 對C#6的所有要求,但沒有成功 http://stackoverflow.com/questions/23605210/what-c​​lr-is-needed-for-c-sharp-6 –

+0

嗯,我不知道你的問題實際上是什麼。我可以編譯這段代碼而不會出現任何錯誤。 – bakala12

1

現在你可以這樣做只是如果是隻讀屬性,避免括號:

public int MyProperty => 6; 

而這已經被語言的6版本中引入的,所以到C# 5這也不起作用。

對於setter以及它將成爲C#7的新功能之一。

+0

實際上,你可以在C#6中做到這一點,請參閱https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#expression-bodied-function-members。 –

+0

@FredyTreboux只爲上面寫的吸氣劑。 –