我有一个带有“BlockType”枚举的图形程序。根据州的不同,这可能是以下几种情况之一:木头、石头、草等。
最初,对于每种可能性都必须进行各种纹理操作,但由于一些重构,枚举仅用作整数,并且不再需要 switch 语句。IE:
BlockType someFoo = someObj.blockType;
Texture usedTexture = textureLookupArray[(int) someFoo];
但作为一个副作用,枚举字符串是完全多余的!我可以将“石头”纹理放在位置 5,即使 BlockType 5 被定义为“地毯”、“砾石”或“JQuery”!
我的第一个想法是简单地重写 BlockType 以定义“Material1、Material2 等”。而不是硬编码(并且可能存在冲突!)值,但这实际上是否有用?
将 BlockType 保留为枚举可能会带来一些好处,还是应该将其切换为常规 Int 以减少混淆?