我有一个包含公共枚举的类,如下所示:
public class Card
{
public enum card_suits
{
Clubs,
Hearts,
Spades,
Diamonds
}
...
我想在我的项目中的其他地方使用它,但是如果不使用Card.card_suit就无法实现。 有没有人知道在C#中是否有一种声明方式,以便我能够声明
card_suits suit;
不引用它所在的类吗?
目前,你的enum
嵌套在Card
类中。你只需要将enum
的定义移到类外部:
// A better name which follows conventions instead of card_suits is
public enum CardSuit
{
Clubs,
Hearts,
Spades,
Diamonds
}
public class Card
{
}
说明:
将card_suits
更改为CardSuit
的命名建议是基于微软指南建议对枚举类型使用帕斯卡命名法,并且在此情况下,单数形式更具描述性(因为复数形式会暗示您正在通过按位OR运算存储多个枚举值)。
你需要在类的外部定义枚举。
public enum card_suits
{
Clubs,
Hearts,
Spades,
Diamonds
}
public class Card
{
// ...
话虽如此,你可能还想考虑使用 枚举的标准命名指南,即 CardSuit 而不是 card_suits,因为建议使用帕斯卡命名法,并且该枚举没有标记 FlagsAttribute,这意味着单个变量中适合多个值。
只需在类的范围之外声明枚举即可。像这样:
public enum card_suits
{
Clubs,
Hearts,
Spades,
Diamonds
}
public class Card
{
...
}
记住,枚举类型是一种类型。 如果枚举将被其他类使用,您可能还需要考虑将其放在自己的文件中。(您正在编写一个纸牌游戏,花色是卡牌非常重要的属性,在良好结构化的代码中,这个属性将需要被许多类访问。)
将其声明在类定义之外即可。
如果您的命名空间名称为X,则可以通过X.card_suit访问枚举的值。
如果您没有为此枚举定义命名空间,只需使用card_suit.Clubs等进行调用即可。