2016-02-11 59 views
0

我一直在試圖找出其中哪些是非法的:非法財產申報

public int MyProperty { get; set;} 

public int MyProperty { get; protected set; } 

public int MyProperty { get; } 

public int MyProperty { get{ return 0; } } 

public int MyProperty { get { return 0; } set { ; } } 

他們沒有返回一個錯誤,但對我來說他們中的一個被認爲是非法的。有人能告訴我哪一個,爲什麼?

+1

你能不能請添加您的問題指的是什麼C#版本? – Kai

回答

3

在C#6.0 所有是合法的,在以前的版本

public int MyProperty { get; } 

非法 - 你不能分配(即set)返回的值。在C#6.0,但是,你可以把

public int MyProperty { get; } = 0; 

或分配值在構造函數中

public MyClass() { 
    MyProperty = 0; 
    } 
-1
public int MyProperty { get; } 

是非法的。

你可以簡單地寫

public int MyProperty { get; private set; } 

到歸檔

+0

現在在C#6中是合法的。 – juharr

+0

我剛剛爲他的前一個問題添加了一個問題,以便找出引用該問題的C#版本。 – Kai