在C#中默认不包含任何对象属性

时间:2010-10-30 17:46:37

标签: c#

在课堂上我有一个属性:

public Move plannedMove;

默认情况下,我希望它不包含任何内容,以便我可以测试它是否在我的代码中以某种类似于

的方式设置
if(!plannedMove)

或类似的东西。我也希望能够取消它,以便它是空的空白。我怎么能这样做?

为了防止我完全错误,我将解释我原来的问题:我的Player对象需要能够有一个可选的预先计算的移动。在方法GetMove中,它需要返回预先计算的移动,或者计算一个。我怎么能这样做?

编辑:Yikes,忘记提及Move是一个结构。

5 个答案:

答案 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是引用类型。因此,默认情况下,您的变量plannedMovenull

if (plannedMove == null)
{
   // do something
} 

如果是值类型,请选中Nullable<T>