본문 바로가기

프로그래밍/C# 프로그래밍

C# 의 define 처리

C++에서 편하게 사용하던 #define MAX_COUNT 100 같은 상수 정의는 C#에서 지원되지 않는다.


게다가 파일 최상단에 위치하지 않으면 에러를 뿜어낸다.



static class Constants

{

    public const double Pi = 3.141592;

}

class Test

{

    static void Main()

    {

        double result = Constants.Pi * 3;

    }

}


이와 같은 문제로 msdn에서 권장하는 방법은 클래스의 정적멤버로 선언하여 사용하라고 나와 있다.


참고참고

#define 지시문은 C 및 C++에서 일반적으로 수행되는 것처럼 상수 값을 선언하는 데 사용할 수 없습니다. C#의 상수는 클래스 또는 구조체의 정적 멤버로 정의하는 것이 좋습니다. 이러한 상수가 여러 개 있는 경우 별도의 "Constants" 클래스를 만들어 저장하는 것이 좋습니다.



여러 상수를 정의할 경우에는 비슷한 방법으로 enum 를 활용하는 방법이 있다.


namespace Constants

{

    public enum EquipItemCode

    {

        None      = 0,

        Knight    = 56421312,

        Babarian = 43261312,

        Wizard    = 55076512,

    }


    public enum HeroClass

    {

        Knight = 0,

        Babarian = 1,

        Wizard = 2,

        Count = 3         

    }

}


뭐 이런식으로 사용할 수도 있을 것 같다.


어쨌든 C++처럼 상수정의를 직접 하지 못하는 점은 불편하게 다가올 수도 있다.



'프로그래밍 > C# 프로그래밍' 카테고리의 다른 글

C# 파일 직렬화 - BinaryFormatter  (0) 2015.12.23
C# 6.0 새로운 기능  (0) 2015.12.10
C# Math 함수 모음집  (0) 2015.11.30
C# String Object 의 불변성  (0) 2015.11.02
C# String Null 문자열  (0) 2015.11.02