变量、方法和类可以接收各种安全级别。根据我的 C# 经验,有:
公共
内部
受保护 受
保护 内部
私有
现在,我了解了将方法和类设为私有、内部或受保护的用途,但变量呢?即使我将变量设为私有,我也可以使用属性从不同的类中调用它。
我一直认为属性是最佳实践。所以如果我可以使用它,我不需要直接通过实例调用变量。
有什么理由不将变量设为私有吗?
编辑:我看到有些人在谈论属性,好像它们只不过是美化的公共变量
快速提醒:公共变量只返回它们的值。有了属性,您可以做更多事情。例如:
public int AmountOfBooks{
get {
//code to check certain conditions
//maybe trigger an event while we're at it.
//and a few conditionals.
return this.amountOfBooks;
}
set {
//a few conditionals
//maybe trigger an event
this.amountOfBooks = value;
//and I can do even more... I think, never tried this.
}
}
看过我简介的人都知道我是一名学生。使用属性作为“美化的公共变量”是我看到很多同学做的事情。告诉他们可以这样做时,最常见的反应是:“允许吗?”