메인페이지 . 바뀐페이지 .

\cat StudyMaterial

참여자: HuidaeCho

상수

const, readonly
enum
토론

C#에는 const, readonly 그리고 enum 등의 세 가지 상수가 있다. 이 중에서 const와 readonly는 값을 변경할 수 없는 변수와 같으며 enum은 이름을 가지는 정수형 상수라 할 수 있다.

const, readonly

const는 변수의 정의와 함께 초기화되어야 하는 상수이고 readonly는 추가적으로 클래스의 static 생성자에서 초기화할 수 있는 상수이다. 말 그대로 상수이므로 두 번 이상의 초기화는 할 수 없다.

using System;

class ConstReadonlyTest{
	// const 상수는 반드시 정의와 함께 초기화되어야 하며 그 값은 변경이
	// 불가능하다. const는 자동으로 static 변수로 선언된다.
	public const string cnst = "Hi";

	// readonly 상수도 const와 같이 정의와 함께 초기화할 *수도* 있으나
	// 자동으로 static 멤버가 되지는 않는다. static이 아닌 readonly 상수는
	// 반드시 정의와 함께 초기화되어야 한다.
	public readonly int rdonly = 2;

	// readonly 상수는 static 키워드를 이용해서 직접 static으로 만들 수
	// 있다. 초기화하지 않을 경우 0이 할당된다.
	public static readonly int rdonly2;

	// static readonly 상수의 초기화는 static 생성자에서만 가능하다.
	public static readonly int rdonly3;

	// static 생성자는 public 또는 private으로 선언할 수 없으며 인스턴스
	// 생성시가 아닌 클래스 참조시에 실행된다.
	static ConstReadonlyTest(){
		rdonly3 = 3;
	}
}

class ConstReadonlyExample{
	public static void Main(){
		// cnst는 static 멤버이다.
		Console.WriteLine(ConstReadonlyTest.cnst);

		Console.WriteLine(ConstReadonlyTest.rdonly2);
		Console.WriteLine(ConstReadonlyTest.rdonly3);

		ConstReadonlyTest test = new ConstReadonlyTest();
		Console.WriteLine(test.rdonly);
	}
}

enum

enum은 이름을 가지는 열거형 상수이다.

using System;

class EnumExample{
	// enum은 반드시 메서드 밖에서 정의해야 한다.
	enum Number{zero, two=2, three, four}
	public static void Main(){
		// i는 Number enum에서 정의하지 않은 1의 값을 가질 수 있다.
		for(Number i=Number.zero; i<=Number.four; i++)
			Console.Write(i+"="+(int)i+"\t");
		Console.Write("\n");

		for(int j=0; j<=4; j++)
			// int형인 j를 Number enum으로 캐스팅할 수 있다.
			Console.Write((Number)j+"="+j+"\t");
		Console.Write("\n");
	}
}

토론

편집 . 바뀐부분 . 역링크 .
2020년 7월 11일 오후 12:54:47 . XHTML 1.1 . CSS 3 . 용쓴다. !
이 사이트의 모든 문서는 크리에이티브 커먼즈 라이센스를 따릅니다.