Q
屬性和專用集合
-3
A
回答
4
農行屬性必須是public,protected或內部:
public int Abc { get; private set; }
在你的情況的屬性是私有的(因爲你沒有指定訪問修飾符),所以它已經是一個私人組。你不能在當前類之外修改它的值,所以在這種情況下聲明一個私有setter沒有意義。
+0
@Colder,你可以。它已經是私人的了。因此,爲私人財產定義一個私人二傳手是沒有意義的。無論如何,當前課程以外的任何內容都不能修改其值。它也無法獲得它的價值,因爲這個屬性是私人的。在這種情況下,您不使用屬性。你使用一個字段:'private int Abc;'。 – 2012-01-15 15:17:11
3
對於屬性的默認訪問修飾符是私有的,對於任何其他類的成員。如果你想使得二傳手不易接近,你需要先讓該傳球更容易接近,然後對傳球手施加限制。
class Test
{
public int Abc1 { private set; get; }
protected int Abc2 { private set; get; }
internal int Abc3 { private set; get; }
protected internal int Abc4 { private set; get; }
}
3
所有類成員(包括性)是private
的缺省可訪問性;見Accessibility Levels。您的set
之前的private
是冗餘的,因此是錯誤的。您的代碼將在語義上等同於以下內容:
class Test
{
int Abc { get; set; }
}
你只需要指定一個private
訪問修飾符爲當地產是更方便您的set
訪問;例如(常見的場景):
class Test
{
public int Abc { get; private set; }
}
相關問題
- 1. XML屬性和集合
- 2. asp.net - 屬性集合屬性
- 3. 在集合屬性
- 4. Asp.net控件的屬性集合屬性
- 5. WF4,推薦屬性和集合
- 6. 創建新集合和數組屬性
- 7. EditorFor with集合和名稱屬性
- 8. 集合和嵌套屬性形式
- 9. 集合屬性「__implicit_items」爲空
- 10. Xml序列 - 集合屬性
- 11. VBA集合成員屬性
- 12. GSON屬性名集合
- 13. Laravel雄辯集合屬性
- 14. 集合屬性的含義
- 15. 集合依賴屬性
- 16. Java屬性驅動集合
- 17. JPA - 屬性是集合
- 18. laravel查詢 - 調用underfined屬性 - 集合
- 19. 使用屬性獲取NSManagedObjects的集合
- 20. 使用新屬性擴展scala集合
- 21. 不能使用Count()屬性集合linQ
- 22. xceed Propertygrid - 如何使用屬性集合
- 23. 禁用屬性/集合與休眠
- 24. 獲取節點集的屬性集合
- 25. 使用集合參數針對集合屬性的Linq查詢
- 26. 屬性專門化和約束模塊
- 27. 爪哇 - 多態性與集合屬性
- 28. 如何使用AfterMap來映射屬性集合屬性
- 29. 創建屬性集和屬性編程
- 30. 實體框架不會加載引用和集合屬性
是的,C#,對不起。 – Never 2012-01-15 15:12:45
可能重複的[C# - 屬性必須更嚴格?](http://stackoverflow.com/questions/6886514/c-sharp-property-must-be-more-restrictive) – 2012-01-15 15:19:48
@Saeed雖然類似,我不認爲這是一個重複。 – kenny 2012-01-15 15:49:06