【发布时间】:2017-12-23 19:21:22
【问题描述】:
我在 Unity 工作时遇到了一个问题 我在编辑器中隐藏了一个公共变量 这给我带来了一些我报告为错误的问题 因为对我来说它看起来像一个
我是这样做的:
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 中理解这个例子,这和我现在的例子一样。我不知道这个网站有多好,但我在那里最了解它
【问题讨论】:
-
我会使用第二个,但将其公开并摆脱该方法,但这可能是我不熟悉的一些奇怪的 Unity 范例。
-
确实没有理由将字段设为私有属性并通过公共设置方法设置其值。相反,您应该使用公共 getter 和 setter 创建一个属性
-
@JackMiller 我也不确定那个。这个推荐的代码看起来很奇怪。
-
除此之外,第二个将不起作用,因为该属性正在引用自身。您确定这是支持成员建议使用的确切代码吗?
-
提议的代码还使 getter 成为私有的(这很不寻常)。