我在Unity工作时最后遇到了问题 我在编辑器中隐藏了一个公共变量 这引起了一些我报道为Bug的Proplems 因为对我来说它看起来像一个
我是这样做的:
public bool Variable_1 = true;
Unity支持成员对我说我的代码没有任何问题,但我应该这样做,因为这样做会更好:
private bool Variable_1{
get
{
return this.Variable_1;
}
set
{
this.Variable_1 = value;
}
}
public void Set_Variable_1(bool bool){
this.Variable_1 = bool;
}
我想将其公开,因为我想从其他类
访问它所以我的问题是为什么有人会使用第二个示例代码而不是第一个。那有什么好处? 因为在我看来,第一个例子更简单,占用的线条更少 [编辑] 21.7.17:我知道getter和setter方法更灵活,但在这种情况下不需要它。
感谢您抽出时间阅读本帖。 祝你有美好的一天,并保持编码
[编辑] 21.7.17:
另外我想指出我自己编程编程所以我没有调查集合直到现在。我试图理解这个网站www.dotnetperls.com/property中的例子,它现在与我的例子非常相似。我不知道这个网站有多好,但我最了解
答案 0 :(得分:1)
确实没有理由将该字段设为私有属性,并通过公共setter方法设置其值。相反,您应该使用公共getter和setter创建一个属性。
public bool Variable_1 { get; set; }
除此之外,您的两个解决方案都不是一个好主意,公共字段允许任何人将值设置为任何值,从而无法执行任何验证关于新的价值。这当然也适用于如上所述的自动实现的属性。但是,如果您决定做实施某些验证,则任何现有客户端代码都不会受到影响,因为公共API保持不变。在另一方面使用公共字段执行此操作将是一个重大更改,因为您将通过属性替换字段。
然而,第二个过于复杂,并没有提供任何优势。