2011-08-08 30 views
3

它允許做:快速簡單的制定者和獲得者?

public int Age 
{ 
get; 
set; 
} 

但它的應用程序中創建/分配該變量的空間?我通常做

private int age = 0; 
public int Age 
{ 
get { return this.age; } 
set { this.age = value; } 
} 

回答

6

是的。如果您查看IL,您會看到它爲該屬性創建了一個支持變量。

+1

@ Jason94 - 備份Tomas的答案,Bart De Smet有[非常透徹的博客文章](http://community.bartdesmet.net/blogs/bart/archive/2007/03/03/c-3-0 -automatic-properties-explained.aspx)以及您可能需要的所有詳細信息。 –

2

如果編譯器發現空的get或set塊,則會在編譯時自動生成後臺字段,從而爲您節省工作量。您仍然可以添加獲取和設置塊,並在其中添加額外的過濾邏輯,但當然您必須鍵入所有這些。

有關Auto Properties的更多詳情,請參閱這裏。