没有枚举卡有什么好处吗#

时间:2015-08-31 13:21:46

标签: c# enums playing-cards

我将在C#中为扑克游戏创建一个卡片类。使用卡片所需的所有操作将在其他类别中实施,例如甲板或手或组合。 我应该使用哪种类型的字段来排名和套装,字符串枚举 int ? 不使用枚举有什么好处吗?

3 个答案:

答案 0 :(得分:1)

对于具有有限数量选项的值类型,枚举是显而易见的选择。卡排名和套装非常符合这些标准。

枚举可以被认为是整数的语法糖,因此性能方面与使用简单整数相同。 在这里使用枚举没有任何好处。

答案 1 :(得分:1)

我会说枚举是最佳的。整数将具有类似的性能,但使用枚举可提高可读性,并且更难分配非法值。

答案 2 :(得分:0)

我会和enum同时获得排名和西装。

为什么呢?

  • 代码的可读性。在创建类的新实例时,您可以像这样创建它:

    var card = new Card{ Rank = Rank.King, Suit = Suit.Hearts}

  • 不易出错 - 如果诉讼是int,您可以在int.MaxValueint.MinValue之间加上任何数字,但只有部分值会有意义。如果你在代码中的某个地方写了11而不是10,那就试着找一个小虫子,突然你的套牌有五个国王。

  • 不要害怕内存使用 - 枚举只是一个漂亮的int,正如Anders Forsgren的回答中提到的那样。你可以把它设为byte,如果你只需要8个值,这将占用大约一个字节的内存。考虑到你使用C#,可以忽略不计。枚举可以是bytesbyteshortushortintuintlong或{{}中的任何一个1}}。

因此,请保持ulong并使其具有更好看,更不容易出错,速度更快的代码。