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 |