readOnly변수

최현우·2023년 8월 24일
0

simple Tip(ASP.NET)

목록 보기
31/31
post-thumbnail

C# 언어에서는 Java의 final 키워드 대신 readonly 키워드를 사용하여 상수나 읽기 전용 필드를 선언할 수 있다. readonly 키워드를 사용하는 필드는 한 번 초기화되면 그 값을 변경할 수 없다. 그렇다면 장점과 단점을 알아보자.

장점

안정성 및 예측 가능성: 읽기 전용 필드를 사용하면 해당 필드의 값을 변경하는 위험이 줄어든다. 나의 경우는 많이 쓰이는 값 또는 데이터베이스의 구분값 1,2 등 변하지 않고 쿼리의 직접 1,2 등을 적는것보다 안전하고 나중에 수정할때도 편하기 때문에 매인 위에 선언하여 사용한다.

컴파일 타임 상수화: 읽기 전용 필드는 컴파일 타임에 초기화되므로 컴파일러는 final변수로 상수로 인식한다. 변수를 사용하는것이 아닌 변수에 저장된 값을 바로 사용하기 때문에 속도가 빠르다. 이를 인라인처리라고 한다. 함수나 메소드 호출 대신에 호출된 함수의 내용을 호출 위치에 직접 삽입하는 컴파일 최적화 기법이다.

스레드 안전성: 읽기 전용 필드는 한 번 초기화되면 값을 변경할 수 없기 때문에 여러 스레드가 동시에 접근해도 변경할 염려가 없습니다. 이로써 스레드 안전성이 높아집니다. 애초에 변경을 하려고 재선언을 하면 오류가 나고, readOnly로 설정한거 부터 변경할 일이 없다는 뜻이기 때문에 편하다.

또한 변수값이 때에 따라 변하면 본인도 나중에 볼때 어디서 이 값이 할당되고 변하는지 확인하여야 하는데 final은 명시적으로 한번 선언한값을 보면돼서 시간이 지나고 봐도 이해하기 쉽다.

단점

값 변경 불가능: 읽기 전용 필드는 한 번 초기화된 후에 값을 변경할 수 없다. 사실 이게 왜 단점인지는 모르겠다. 애초에 readOnly 오직읽기만! 이라는 뜻인데 말이다. 하지만 어쩔 수 없이 변경해야하는 상황이 오면, 방법은 있다. FildInfo라이브 러리를 사용하거나 생성자를 초기화 하는 방법이 있는데 사용해본적은 없다.

텍스트메모리 할당: 읽기 전용 필드를 사용하면 해당 필드에 대한 메모리가 항상 할당되며, 이는 프로그램의 메모리 사용량에 영향을 줄 수 있습니다. 이전 프로젝트에서 속도가 급격히 느려져 finla을 다 삭제한 후 속도가 개선되었다.

요약하면, 읽기 전용 필드는 코드의 안정성과 예측 가능성을 높이는 동시에, 값 변경 불가능 및 런타임 초기화 불가능하다. 필요에 따라 readonly 키워드를 사용하여 변수를 선언하면 코드의 품질을 개선하고 유지 보수성을 높일 수 있다.

profile
세상에서 가장 귀여운건 == 윤호 ? True : False 언제나 True❤️

2개의 댓글

comment-user-thumbnail
2023년 8월 25일

C# 에서 UI를 만들때 TEXTBOX에 READONLY라는 속성이 있는데 여기 속성에 TRUE를 주면 값이 변하지 않고 수정할 수 도 없어 ㅋㅎ

1개의 답글