작성
·
169
0
안녕하세요 강사님. 프로그래밍 쌩 초보자인데 수업 잘 듣고 있습니다. 다름 아니라 강의 마지막 즈음에 While 문 안에 choice = ChooseClass(); 에서 ClassType choice = ChooseClass(); 로 수정 하셨는데, 디버깅으로 확인해보니 choice가 None으로 자동 설정되는 것 같더라고요. 그래서 choice를 따로 ClassType.None 선언 없이 바로 None으로 설정되는가 해서 ChooseClass 내에 choice도 그냥 ClassType choice; 로 선언하려고 했는데 이건 안되네요. (아래 스크린샷 첨부했습니다)
While 문 안에서 바로 ClassType choice를 써도 None으로 기본값이 설정되는데, ChooseClass에서는 None으로 선언해야되는 이유가 있나요?
감사합니다.
답변 2
1
[변수를 사용하려면, 무조건 초기화를 한 변수여야 한다]가 C# 기본 룰이라서 그렇습니다.
더 구체적으로 들어가면 변수마다 기본 값이 있긴 하지만 (정수는 0)
로컬 변수(함수 내부에 선언해서 사용하는 변수)는 기본 값으로 세팅이 되지 않습니다.
만약 운 좋게 해당 위치에 0인 값이 있었다면
ClassType choice가 ClassType.None으로 인식이 되긴 하겠지만
이는 어디까지나 요행이고,
컴파일러는 이런 불확실성에 기대 코드를 만들지 않기 위해 우리한테 강제로 초기화를 요구하게 됩니다.
0