[C#] 메서드/파라미터
흠... 메서드 사용법도 자바와 별 다를게 없다.
그러니까 차별화되는 좀 특별한 파라미터 관련 기능에 대해서만 적어보겠다.
ref 키워드
자바는 워낙 멍청해서
int a=10; int b=20;
Swap(a,b); 같은 행동이 불가능하다. 참조전달이 안돼서 그렇다.
근데 C#은 된다.
이렇게
그리고 ref는 원래 파라미터로만 사용이 가능했었는데 버전7.0부터는 로컬변수나 반환값이나 다 사용 가능하다.
Out
out은 좀더 제약적인 의미의 ref다.
out으로 인자를 받은 메서드는 반드시 그 인자에 값을 넣어줘야 한다. 아니면 빨간줄 긋는다.
버전7.0부터는 이런것도 된다.
근데 out만 있으면 허전하지 않나? in은? 그래서 얼마전에 in도 추가됐다.
In
out은 읽기도 되고 쓰기도 되는데 얘는 읽기만 된다.
그리고 얘는 애매하게 7.0도 아니라 7.2버전 기능이라서 디폴트로는 못쓸거다.
프로젝트설정-빌드-고급에서 버전 올려줘야한다.
Params
이건 가변인자를 받는 키워드다.
가변인자를 받아서 그걸 배열로 바꿔준다. 그래서 처리도 그냥 배열로 처리하면 된다.
오버로딩
C#은 당연히 다른 파라미터를 가진 동명의 함수들을 여럿 정의할 수 있다. 아마 다 알거라 생각하고 자세히 설명하진 않음
디폴트 매개변수
값을 전달 안하면 들어갈 디폴트값을 파라미터에 넣을 수 있다.
멍청한 자바한테는 없지만 C++한테는 있으므로 알거라 생각하고 그냥 넘어간다.
버전 4.0에서 추가된 기능이다
명명된 매개변수
메서드를 호출할때 매개변수의 이름을 명시해서 부를 수가 있다.
이렇게 말이다.
경우에 따라서 가독성을 향상시킬 수 있을 것 같다.
그리고 버전 4.0부터 추가된 기능이다.
더 있나? 없는 것 같다.
일단 여기서 맺는다.