在课堂上我有一个属性:
public Move plannedMove;
默认情况下,我希望它不包含任何内容,以便我可以测试它是否在我的代码中以某种类似于
的方式设置if(!plannedMove)
或类似的东西。我也希望能够取消它,以便它是空的空白。我怎么能这样做?
为了防止我完全错误,我将解释我原来的问题:我的Player对象需要能够有一个可选的预先计算的移动。在方法GetMove中,它需要返回预先计算的移动,或者计算一个。我怎么能这样做?
编辑:Yikes,忘记提及Move是一个结构。
答案 0 :(得分:1)
默认情况下,此实例不会被实例化,因此将为null,因此
if (plannedMove != null)
{
// do something here
}
没关系。
答案 1 :(得分:1)
public Move plannedMove = null;
...
if (plannedMove == null)
plannedMove = ... // calculate new one
return plannedMove;
答案 2 :(得分:1)
你用以下方法测试它是否为空:
if (plannedMove == null)
使用以下命令将其设置为空
plannedMove = null;
当您使用public Move plannedMove;
声明时,默认设置为空(null
)。
答案 3 :(得分:0)
在构造函数中将其设置为null,或者只要您希望它没有任何内容:
this.plannedMove = null
然后你可以检查它:
if (this.plannedMove != null) ...
答案 4 :(得分:0)
似乎Move
是引用类型。因此,默认情况下,您的变量plannedMove
为null
。
if (plannedMove == null)
{
// do something
}
如果是值类型,请选中Nullable<T>