C# общественные перечисления в классах
у меня есть программа с классом, который содержит открытый перечисление следующим образом:
public class Card
{
public enum card_suits
{
Clubs,
Hearts,
Spades,
Diamonds
}
...
Я хочу использовать это в другом месте в моем проекте, но не могу сделать этого без использования карты.card_suit. Кто-нибудь знает, есть ли способ в C# объявить это, чтобы я мог объявить
card_suits suit;
без ссылки на класс, в котором он находится?
6 ответов:
в настоящий момент
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было предложено, потому что рекомендации Microsoft предлагают случай Паскаля для перечислений, и в этом случае сингулярная форма более описательна (поскольку множественное число предполагает, что вы храните несколько значений перечисления, используя их вместе.)
вам нужно определить перечисление вне класса.
public enum card_suits { Clubs, Hearts, Spades, Diamonds } public class Card { // ...это, как говорится, вы также можете рассмотреть возможность использования стандартные рекомендации по именованию для перечислений, который будет CardSuit вместо card_suits, так как предлагается корпус Pascal, а перечисление не помечено FlagsAttribute, предложив несколько значений в одной переменной.
просто объявите перечисление за пределами класса. Вот так:
public enum card_suits { Clubs, Hearts, Spades, Diamonds } public class Card { ... }помните, что перечислимый тип. вы также можете рассмотреть вопрос о помещении перечисления в свой собственный файл, если он будет использоваться другими классами. (Вы программируете карточную игру, и костюм является очень важным атрибутом карты, который в хорошо структурированном коде должен быть доступен для нескольких классов.)
просто объявите его вне определения класса.
Если имя вашего пространства имен X, вы сможете получить доступ к значениям перечисления по X. card_suit
Если вы не определили пространство имен для этого перечисления, просто вызовите их по card_suit.Клубы и т. д.
переместить определение перечисления за пределы класса, но в пределах текущего пространства имен. Объявление его общедоступным делает его глобально доступным оттуда. Есть хороший пример, предложенный www.LearnVisualStudio.Net видео для 'Learning C# for beginners'. Я думаю, что это также доступно по адресу www.microsoftvirtualacademy.com под тем же C# для начинающих серий.
сказав, пожалуйста, используйте соглашение об именовании случаев Pascal или Carmel, чтобы сделать ваш код читаемым и избежать двусмысленности. например CardSuit является предпочтительным.
Comments