IT Share you

클래스의 C # 공용 열거 형

shareyou 2020. 11. 29. 12:37
반응형

클래스의 C # 공용 열거 형


다음과 같이 공용 열거 형을 포함하는 클래스가있는 프로그램이 있습니다.

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

내 프로젝트의 다른 곳에서 이것을 사용하고 싶지만 Card.card_suit를 사용하지 않고는 할 수 없습니다. C #에 이것을 선언하는 방법이 있는지 아는 사람이 있습니까?

card_suits suit;

그것이 속한 클래스를 참조하지 않고?


현재 enumCard클래스 내부에 중첩되어 있습니다 . 당신이해야 할 일은 enum클래스 에서 정의를 옮기는 것입니다.

// A better name which follows conventions instead of card_suits is
public enum CardSuit
{
    Clubs,
    Hearts,
    Spades,
    Diamonds
}

public class Card
{
}

지정하려면 :

Microsoft 지침에서 Pascal Case for Enumerations를 제안하고 단수 형식이이 경우에 더 설명 적이기 때문에 에서 card_suitsto CardSuit이름 변경 이 제안되었습니다.


클래스 외부에서 열거 형을 정의해야합니다.

public enum card_suits
{
    Clubs,
    Hearts,
    Spades,
    Diamonds
}

public class Card
{
     // ...

, Pascal Casing이 제안되고 열거 형이 FlagsAttribute 로 표시되지 않아 단일에 여러 값이 적절 함을 제안하기 때문에 card_suits 대신 CardSuit 인 Enums대한 표준 명명 지침 사용을 고려할 수도 있습니다. 변하기 쉬운.


클래스 경계 외부에서 열거 형을 선언하십시오. 이렇게 :

public enum card_suits
{
    Clubs,
    Hearts,
    Spades,
    Diamonds
}

public class Card
{
    ...
}

열거 형은 유형 이라는 것을 기억하십시오 . 다른 클래스에서 사용할 경우 enum을 자체 파일에 넣는 것도 고려할 수 있습니다. (당신은 카드 게임을 프로그래밍하고 있고 그 슈트는 잘 구성된 코드에서 여러 클래스에서 접근 할 수 있어야하는 카드의 매우 중요한 속성입니다.)


클래스 정의 외부에서 선언하십시오.

If your namespace's name is X, you will be able to access the enum's values by X.card_suit

If you have not defined a namespace for this enum, just call them by card_suit.Clubs etc.


I think this is what you want.

using card_suits = Card.card_suits;

참고URL : https://stackoverflow.com/questions/2540825/c-sharp-public-enums-in-classes

반응형