将一项财产申报为私有财产还是内部财产比较好?And...why是一个优先选择而不是另一个?
与我一起工作的人一直将“私有”字段声明为内部字段,我认为it...so没有任何意义,我一定是遗漏了什么。
示例:
/// Someone I work with does this
public class SomeClass
{
internal Document _document;
internal Contractor _contractor;
internal IUser _user;
internal Project _project;
}
/// I usually do this
public class SomeClass
{
private Document _document;
private Contractor _contractor;
private IUser _user;
private Project _project;
}
发布于 2011-04-14 07:49:52
通常,纯私有的自动实现的属性可能也是私有字段。
作为一个简单的经验法则,尽量限制每件事,而不造成太多的痛苦。如果程序集中没有任何其他属性使用这些属性(或者应该合理地使用这些属性),那么将它们设置为私有(并可能使它们成为普通字段)是一种很好的方法。
编辑:好吧,既然我们讨论的是字段,当然,一定要让它们成为私有的。非私有字段应该是非常罕见的--几乎我所能想到的唯一用途是常量(实际上是const
,还是只是不可变类型的只读静态字段)。即使那样,我通常也会使用房产。只是偶尔对游戏和其他表现-关键的情况,这是值得打破规则-但你需要首先理解和尊重这些规则。
字段是实现细节--对于试图使用该对象的其他代码来说,您在对象中存储数据的方式不应该很有趣。关注类型应该支持的API与该API的实现之间的区别。
发布于 2011-04-14 07:49:19
字段和任何其他成员都应该使用最严格的访问修饰符声明,允许根据需要使用该成员。
internal
只允许在同一个程序集中使用它,或者朋友assembliesprivate
只允许在类型本身()中使用
无论哪一个方案满足您的需要,都应该被选择。
不过,我猜private
在这里更合适。考虑到字段名不符合.Net设计准则,它似乎意味着它对类型是私有的。因此,我会把它定为私密的,或者给它取一个合适的名字。
发布于 2011-04-14 07:49:54
这取决于你的要求。如果您需要其他类来访问同一个程序集中的变量,那么内部就是方法。如果不需要其他类进行访问,那么将它们声明为私有类。
可以在这里找到更多关于内部的信息:
https://stackoverflow.com/questions/5665901
复制