category : .NET
keyword : csharp, .NET

sealed
class modifier
클래스를 더이상 상속할수 없게 만들고 싶은때 사용
[attributes] sealed class identifier [class-base] class-body  [;]

const
필드나 로컬 변수의 선언을 변경하는데 사용한다.
const 로 선언된 필드나 로컬 변수는 변경될 수 없음을 지정한다.
[attributes] [modifiers] const type declarators;

readonly
const 와 역활은 같지만 초기화방법이 조금 차이가 있다.
선언과 동시에 초기화 할 수도 있고 생성자등에서 초기화가 가능한다.
즉 const는 compile time의 constant이고 readonly는 runtime에 constant로 사용될 수 있다.

Effective C# item2 - const보다 readonly가 좋다.
const는 compile time에 해당 값으로 대치되는 반면에 readonly 변수는 상수를 가르키는 참조자로 동작한다.
아래 코드를 통해 2가지 사용 용도에 대해서 확실히 구분하도록 하자.

CURRENT_VERSION값을 참조해서 버전별로 별도의 처리를 하는 어셈블리가 존재한다고 할 경우
CURRENT_VERSION의 값을 선언한 어셈블리를 수정함으로써 CURRENT_VERSION값을 참조하던 다른 어셈블리는 재 컴파일 없이 자동으로 해당값으로 변경되게 된다.
만약 이 값이 const였다면 CURRENT_VERSION값을 참조하는 모든 어셈블리는 재 컴파일을 수행해야 할 것이다.

EOF

+ Recent posts