类中的C#公共枚举

我有一个包含公共枚举类的程序,如下所示:

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_suitsCardSuit的名称已经提出,因为微软的指导方针build议使用Pascal Enumeration案例,单数forms在这种情况下更具描述性(因为复数forms表明您通过ORing存储多个枚举值)。

你需要在类之外定义枚举。

 public enum card_suits { Clubs, Hearts, Spades, Diamonds } public class Card { // ... 

话虽如此,你也可以考虑使用Enums的标准命名规则,因为build议使用Pascal Casing,而不是使用Card_suits,而且枚举不用FlagsAttribute标记,这表明多个值适用于单个variables。

只要在类的边界之外声明枚举。 喜欢这个:

 public enum card_suits { Clubs, Hearts, Spades, Diamonds } public class Card { ... } 

请记住, 枚举是一种types。 如果这个枚举将被其他类使用,你也可以考虑把枚举放在它自己的文件中。 (你正在编写一个纸牌游戏,西装是卡的一个非常重要的属性,在结构良好的代码中,需要被许多类访问)。

只需在类定义之外声明它。

如果你的名字空间的名字是X,你将能够通过X.card_suit访问枚举的值

如果你没有为这个枚举定义一个命名空间,只需通过card_suit.Clubs等来调用它们。

将枚举定义移到类外,但在当前名称空间内。 宣布它是公开的,从那里可以全球访问。 http://www.LearnVisualStudio.Netvideo为学习C#初学者提供了一个很好的例子。; 我认为这也可以访问www.microsoftvirtualacademy.com在相同的C#初学者系列。

话虽如此,请使用Pascal或Carmel案例命名惯例,使您的代码可读,避免模糊。 例如CardSuit是首选。

我想这是你想要的。

 using card_suits = Card.card_suits;