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. Asp.net控件的属性集合属性
- 4. WF4,推荐属性和集合
- 5. EditorFor with集合和名称属性
- 6. 集合和嵌套属性形式
- 7. Laravel雄辩集合属性
- 8. 集合依赖属性
- 9. JPA - 属性是集合
- 10. 集合属性的含义
- 11. GSON属性名集合
- 12. Java属性驱动集合
- 13. Xml序列 - 集合属性
- 14. 禁用属性/集合与休眠
- 15. 使用属性获取NSManagedObjects的集合
- 16. 获取节点集的属性集合
- 17. 使用集合参数针对集合属性的Linq查询
- 18. 属性专门化和约束模块
- 19. 如何使用AfterMap来映射属性集合属性
- 20. 爪哇 - 多态性与集合属性
- 21. 创建属性集和属性编程
- 22. 实体框架不会加载引用和集合属性
- 23. Linq - GroupBy和所得集合属性的总和
- 24. 如何根据子集合属性对集合进行排序
- 25. 获取基于Linq的其他集合的属性的集合
- 26. 绑定到返回子集合的集合中的属性
- 27. 根据对象属性将java集合拆分为子集合
- 28. 灌装集合属性W/O指定属性元素
- 29. 在属性的集合{}方法获取属性名
- 30. Casting a Select从属性集合中的.Last()中获取属性
是的,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