我将在C#中为扑克游戏创建一个卡片类。使用卡片所需的所有操作将在其他类别中实施,例如甲板或手或组合。 我应该使用哪种类型的字段来排名和套装,字符串或枚举或 int ? 不使用枚举有什么好处吗?
答案 0 :(得分:1)
对于具有有限数量选项的值类型,枚举是显而易见的选择。卡排名和套装非常符合这些标准。
枚举可以被认为是整数的语法糖,因此性能方面与使用简单整数相同。 不在这里使用枚举没有任何好处。
答案 1 :(得分:1)
我会说枚举是最佳的。整数将具有类似的性能,但使用枚举可提高可读性,并且更难分配非法值。
答案 2 :(得分:0)
我会和enum
同时获得排名和西装。
为什么呢?
代码的可读性。在创建类的新实例时,您可以像这样创建它:
var card = new Card{ Rank = Rank.King, Suit = Suit.Hearts}
不易出错 - 如果诉讼是int
,您可以在int.MaxValue
和int.MinValue
之间加上任何数字,但只有部分值会有意义。如果你在代码中的某个地方写了11而不是10,那就试着找一个小虫子,突然你的套牌有五个国王。
byte
,如果你只需要8个值,这将占用大约一个字节的内存。考虑到你使用C#,可以忽略不计。枚举可以是byte
,sbyte
,short
,ushort
,int
,uint
,long
或{{}中的任何一个1}}。 因此,请保持ulong
并使其具有更好看,更不容易出错,速度更快的代码。