일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Android
- onsenui
- sequelize
- Vuetify
- Vue
- f035d
- 동일 프로세스
- Electron
- naver storage
- NUXT
- error
- v-text-field height
- CSS
- bucket cors
- vuejs
- 동일 프로그램
- MySQL
- v-select
- nodejs
- electron-nuxt
- sort
- onsen-ui
- 프로세스 방지
- naver storage bucket error
- c#
- xlsx
- JavaScript
- bucket max-key
- vuetifyjs
- kotlin
- Today
- Total
앙큼한 개발기록
C# const , readonly 설명 본문
C# cont
C#에서 변수 선언 시에 cont 혹은 readonly를 선언 하면 "상수"가 된다.
const int a = 0;
int const a2 = 0; // const는 앞뒤로 적용 가능
a = 1; // 변경시 컴파일 애러
readonly int b ; // 선언 해도 되고 안해도 컨트롤러에서 값을 설정 할 수 있다.
public Test()
{
b = 1;
}
const 는 선언 할 때 무조건 값을 설정 해야 하는 「상수」,
readonly 는 const 변형 버전으로 초기에 선언 안 해도 되고, 컨트롤러에서 설정 해 줄 수 있으나 일반 변수처럼 사용은 불가능. 상수는 맞는데 「변할 수 있는(업데이트가 가능한) 상수」
그럼 왜 굳이 readonly를 만들었는가 하면
두개의 프로젝트 A 와 B 가 존재
A 와 B는 연결 되어 있음
B 프로젝트의 상수 중 A의 const 상수를 받아서 설정하는 값이 존재함
나중에 A 프로젝트의 const상수를 업데이트 한 후 재 컴파일 실시
B프로젝트 의 상수에는 반영이 안됨. (const는 한번 설정된 값은 재 컴파일 안 하면 변하지 않는다.)
그래서 다시 B프로젝트를 재 컴파일 해야 됨.
=> 이를 해결 하기 위해 readonly를 사용합니다.
readonly는 상수 이지만 컨트롤러에서 참조 값을 받아서 선언 할 수 있기 때문에 상수이지만 변하는 상수라고 보시면 됩니다.
그거 말고는 두 개의 기능은 똑같습니다.
혹시 모르니까 그냥 readonly 쓰세염
const 랑 static
const & readonly랑 static은 다릅니다.
static 은 정적변수입니다. 변수에요. 즉 static은 변할 수 있다는 이야기.
변하기는 하는데. static은 가져다 쓰기 편하게 만든 변수라고 생각하시면 됩니다.
static은 선언하여 컴파일 할 경우 메모리에 우선적으로 등록 됩니다.
보통은 방문자 수나 아이디 값으로 사용하는데 프로그램에서 여기저기 호출해서 보여주고 싶은 데이터를 저장한다고 보시면 됩니다.
const는 static 선언 안 해도 메모리에 저장됩니다. 선언 하면 에러 뜹니다.
readonly는 static 아닙니다. 읽기 전용이라 이놈은 상수 는 상수 인데 읽어서 사용하는 상수이니까.
readonly를 const처럼 사용 하고 싶으시면 static 선언 하시면 됩니다.
오타 및 수정 사항 알려주시면 수정하겠습니다.
'개발 > visualBasic' 카테고리의 다른 글
[C#] partial class 정리 (0) | 2023.01.10 |
---|---|
C# for foreach 문 (0) | 2018.01.16 |