C\#중 const 와 readonly 의 차이

1466 단어 constreadonly
const 의 개념 은 수정 할 수 없 는 값 을 포함 하 는 변수 입 니 다.상수 표현 식 은 컴 파일 할 때 완전히 계산 할 수 있 는 표현 식 입 니 다.따라서 한 변수 에서 추출 한 값 으로 상수 를 초기 화 할 수 없습니다.const int a=b+1;b 는 변수 입 니 다.더 이상 컴 파일 할 수 없 을 때 결 과 를 계산 할 수 없 기 때문에 상수 가 변수 로 초기 화 할 수 없습니다.
readonly 는 필드 를 상수 로 설정 할 수 있 지만,일부 연산 을 실행 할 수 있 으 며,초기 값 을 확인 할 수 있 습 니 다.readonly 는 계산 할 때 실행 되 기 때문에 물론 일부 변수 로 초기 화 할 수 있 습 니 다.readonly 는 인 스 턴 스 구성원 이기 때문에 서로 다른 인 스 턴 스 는 상수 값 을 가 질 수 있 기 때문에 readonly 를 더욱 유연 하 게 할 수 있 습 니 다.
readonly 키 워드 는 const 키워드 와 다 릅 니 다.
1.const 필드 는 이 필드 의 성명 에서 만 초기 화 할 수 있 습 니 다.   readonly 필드 는 성명 이나 구조 함수 에서 초기 화 할 수 있 습 니 다.따라서 사용 하 는 구조 함수 에 따라 readonly 필드 는 값 이 다 를 수 있 습 니 다.2.const 필드 는 컴 파일 시 상수 이 고 readonly 필드 는 실행 시 상수 에 사용 할 수 있 습 니 다.3.const 는 기본적으로 정적 이 고 readonly 는 정적 으로 설정 하면 성명 을 표시 해 야 합 니 다.4.const 참조 형식의 상수 에 대해 가능 한 값 은 string 과 null 일 수 있 습 니 다.   readonly 는 모든 형식 일 수 있 습 니 다.
*주의해 야 할 문 제 는:
readonly 의 Reference 형식 에 대해 서 는 할당(쓰기)작업 을 할 수 없 도록 제한 되 어 있 을 뿐 입 니 다.그 구성원 에 대한 읽 기와 쓰 기 는 여전히 제한 을 받 지 않 는 다.4567913)그러나 상례 의 Class 1 이 하나의 Class 가 아니 라 하나의 struct 라면 뒤의 두 문장 이 모두 틀 릴 수 있다.
static readonly:
자바 에서 static 는 클래스 를 불 러 올 때 한 번 실 행 됩 니 다.
C\#에서 어떻게 실행 되 었 는 지 나 는 알 아내 지 못 했다.이상 하 게 도 거의 모든 자바 의 책 은 static 문 제 를 말 합 니 다.C\#는 어떻게 만 사용 하 는 지 만 main 함수 가 호출 되 기 전에 초기 화 되 어야 합 니 다.그래서 static readonly 도 실 행 될 때 변수 로 값 을 지불 할 수 있 습 니 다.예 를 들 어:
private static readonly string path = System.Windows.Forms.Application.StartupPath + “aaa”;

좋은 웹페이지 즐겨찾기