C# - sealed & partial, const & readonly) 복습을 위해 작성하는 글 2023-04-18

rizz·2023년 4월 18일
0

C

목록 보기
3/25

📒 갈무리 - sealed & partial, const & readonly

📌 sealed

- Java의 fianl 구문과 같이 클래스 앞에 sealed가 붙으면 상속할 수 없는 클래스가 된다.

- 함수나 속성에 sealed가 붙는다면 해당 클래스를 상속받은 클래스에서는 함수나 속성을 재정의 하는 것이 불가능해진다.

- 기본 클래스로 사용할 수 없기 때문에 추상 클래스 또한 될 수 없다.

- 기본 클래스로 사용할 수 없으므로 일부 런타임 최적화에서는 호출이 약간 더 빠를 수 있다.

 

📌 partial(C# 2.0부터 도입)

- 동일한 클래스를 여러 파일에 분리하여 개발이 가능하도록 한다.

- 컴파일 시에 하나의 클래스로 통합하여 단일 코드로 인식한다.

- 분할된 클래스는 모두 동일한 접근 지정자를 가져야 한다.

- C#은 다중 상속을 지원하지 않기 때문에 partial 클래스의 부모 클래스가 다를 경우 컴파일 에러를 발생시킨다.

- 하나의 클래스를 나누어서 작업함으로써 작업이 편해질 수 있지만, 무분별한 사용 시 더욱 복잡해질 수 있다.

 

📌 const

- 컴파일 시 상수값을 대입하여 컴파일하기 때문에 값을 변경할 수 없다.

- 반드시 초기화를 해주어야 한다.

- Java와는 다르게 내장 자료형(정수형, 실수형, enum, string)에 대해서만 사용할 수 있다.

- const로 선언된 데이터는 기본적으로 static(정적)이다.

 

📌 readonly

- 읽기 전용 변수이기 때문에 초기화한 후 값을 변경할 수 없다.

- 상수와 달리 초기화가 필수는 아니다.

- 생성자에서 읽기 전용 데이터를 초기화할 수 있지만, 생성자 외부에서는 읽기 전용 데이터의 값을 수정할 수 없다.

- non-static(비정적) 데이터와 유사하게 동작한다.

- 객체에 대한 값이기 때문에 접근을 위해서는 객체가 필요하다.

- 런타임 시 값이 정해진다.

profile
복습하기 위해 쓰는 글

0개의 댓글