也許有什麼東西我錯過了C#的最新版本,但對我來說這代碼不應該但它確實工作..C#屬性:爲什麼這個工作?
public class FileManip {
public FileManip(string path) {
appPath = path;
}
private string appPath {
get;
}
//...............
}
也許有什麼東西我錯過了C#的最新版本,但對我來說這代碼不應該但它確實工作..C#屬性:爲什麼這個工作?
public class FileManip {
public FileManip(string path) {
appPath = path;
}
private string appPath {
get;
}
//...............
}
當酒店與實施get
,你不允許寫一個屬性:
public class FileManip {
public FileManip(string path) {
AppPath = path; // <<===== ERROR
}
private string AppPath {
get { return @"c:\temp\"; }
}
}
但是,當你有沒有實施{ get; }
,這是一個所謂的只讀屬性。它已被添加到C#6.您只能從構造函數寫入它。代碼的所有其他部分都以只讀方式訪問此屬性。
ahh我看到..我知道標記爲只讀的常規變量可以在構造函數中設置(使它與Const不同),但從未在屬性中看到過。 thx – gmes29
有什麼要說的,是的,它的工作,因爲你已經看到了自己。是什麼使得它工作,C#被定義爲這種方式是有效的。他們可以用他們的語言來做到這一點。 – Servy
有一個得到它使'只讀'。這些屬性可以在構造函數中設置。 –
「也許有些東西我錯過了最新版本的C#」 - 「Getter-only」屬性是在c#6中根據[wiki](https://github.com/dotnet/roslyn/wiki/New- Language-Features-in-C%23-6):「現在可以在沒有setter的情況下聲明自動屬性」。 – Quantic