프로퍼티 관련 은닉성 질문입니다.
555
작성한 질문수 33
말씀하신대로 get set을 프로퍼티로 만들고 지향하는 바에 따라 private를 임의로 붙이는 것으로 접근을 제한할 수 있다는 사실을 이해했습니다.
다만 여기서 추가로 궁금한 케이스는 class의 경우 기본 동작이 ref 형식으로 이루어진다 들었는데 get으로 가져온 변수가 타 함수에서 동작 도중 값이 변경될 경우(예를 들어 ++ -- 같은 증감연산자 등) 원본에 영향이 가는지를 알고 싶습니다.
추가로 그러한 점을 고려해서 const 를 붙이려 했는데
public int Hp {const get; private set; }
public const int GetAttack() { return _iAttack;}
두 가지 모두 에러가 나더군요. const 관련하여 어떻게 사용해야 될 지도 문의하고 싶습니다.
//
자동 완성 프로퍼티로 만들 시 변수의 기본 접근지시제어자는 private인가요?
//
늘 빠르고 친절한 답변 감사합니다.
답변 2
2
다만 여기서 추가로 궁금한 케이스는 class의 경우 기본 동작이 ref 형식으로 이루어진다 들었는데 get으로 가져온 변수가 타 함수에서 동작 도중 값이 변경될 경우(예를 들어 ++ -- 같은 증감연산자 등) 원본에 영향이 가는지를 알고 싶습니다.
class 객체가 기본적으로 참조값으로 동작하는건 맞지만
get { return Hp; } 를 할 때 Hp까지 참조값으로 동작하는건 아닙니다.
Hp는 어디까지나 int (value)임으로 그냥 복사 되기 때문에,
get을 한 다음에 그것을 수정하면 원본값은 수정되지 않습니다.
반면 set을 이용하면 수정됩니다.
이 부분은 질문을 하시기 보단, 직접 테스트틀 해보면서 학습하는게 오래 남습니다.
-> 자동 완성 프로퍼티로 만들 시 변수의 기본 접근지시제어자는 private인가요?
정확히 말하면 private이 아니라 internal입니다.
여담이지만 _iAttack과 같은 컨벤션으로 변수 이름을 짓는걸 보니
학원이나 게임 학과, 혹은 이미 코딩 경험이 있으신 것으로 판단되는데,
만약 그렇다면 구글링 연습을 한다 생각하고
질문주신 부분은 반드시 구글에서 찾는 연습을 해보시기 바랍니다.
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/const
Generic에 대한 질문 있습니다.
0
99
2
2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?
0
208
2
다형성 캐시 문제
0
117
3
.
0
73
1
프로퍼티 강의 질문 있습니다.
0
79
1
이후 커리 질문
0
87
1
static
0
94
2
강의에는 새로운 클래스 파일을 생성하면...
0
72
1
생성자의 이름 선언
0
66
1
9:03 Divide(10 , 3) 부분 질문입니다
0
91
1
깃허브 관련 질문 있습니다.
0
241
1
비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문
0
250
1
C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!
0
308
2
Activator 질문있습니다
0
336
1
이넘 타임 선언 질문
0
351
1
Sort 오름차순, 내림차순
0
323
1
질문 있습니다.
0
250
1
팩토리얼 문제
0
273
1
Sort함수 질문있습니다.
0
267
1
다형성 함수 질문 있습니다.
0
222
1
질문이 있습니다.
0
231
1
섹션2 연습문제 질문입니다.
0
216
1
안녕하세요~서버에 대해 질문이 있습니다.
1
284
1
텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ
0
397
1





