枚举或类名作为标识符

时间:2014-11-26 12:32:52

标签: c# class enums

我有一个包含所有块的枚举:

enum BlockType
{
   Grass, Dirt, Stone
}

我们说我有一个抽象的Block类:

abstract class Block
{
   public Position position;
   public BlockType type;
}

所有的块都是这样的:

class Grass : Block
{
   ...
}

我现在可以轻松检查一个块是否是草: if (block.type == BlockType.Grass)

但我也可以这样做:if (block is Grass) 这意味着我不需要拥有该变量,从而节省了RAM。

什么会更好:识别enum方式或类方式的块?

1 个答案:

答案 0 :(得分:1)

最好的方法是永远不知道外面的块的类型。假设你想画草块绿色和石块灰色。您可以从块中请求类型,然后根据类型确定颜色,但最好拨打block.getColor,甚至block.draw。显然,块本身就知道它是什么,因此它可以返回正确的颜色或以正确的颜色绘制自己。

除此之外,使用类名肯定比使用枚举更好。我会处理整个枚举。然后,如果你想要添加一个类,你不必也更新枚举。