티스토리 뷰
클래스 안에서 코드 블럭을 실행시키는 함수를 메소드라 한다. 파라미터를 가질 수 있고 리턴값을 가질 수 있다. 메소드 명 앞에 리턴타입에 public이나 private같은 접근 제한자를 둘 수 있다. C#은 메소드에 파라미터를 전달할 때 값을 복사해 전달하는 Pass by Value 방식을 따른다. C++의 &와 같은 ref 키워드를 통해 Pass by reference 참조 전달을 할 수 있다.
이와 비슷한 기능으로 C# out 키워드가 있다. out을 사용하는 파라미터는 메소드 내에서 그 값을 반드시 지정하여 전달하게 되어 있는데 이 값은 초기화 할 필요가 없다.
//ref
static double Getdata(ref int a, ref double b)
{
return ++a, * ++b;
}
//out
static bool GetData(int a, int b, out int c, out int d)
{
c = a + b;
d = a - b;
return true;
}
static void Main(string[] args)
{
//초기화 필요
int x = 1;
double y = 1.0;
double ret = GetData(ref x, ref y);
//초기화 불필요
int c,d;
bool bret = GetData(10, 20, out c, out d);
}
파라미터 전달 시 위치 상관없이 파라미터 명을 정하여 전달하는 파라미터를 Named Parameter라 부른다.
ex) Method(name: "H", age: 23);
디폴트 값을 가지는 파라미터를 Optional Parameter라 하고 파라미터 중 마지막에 놓여야 한다.
파라미터의 갯수를 알 수 없는 경우 params 키워드를 사용한다. 가변적인 배열을 인수로 갖게 해주고 마지막 위치에 단 하나만 존재하여야 한다.
int Calc(params int[] n)
int ans = Calc(1,2,3);
ans = Calc(5,6,7,8,9);
'OOP > C#' 카테고리의 다른 글
자료형 Data type (0) | 2025.02.03 |
---|---|
7. C# delegate, event (0) | 2021.01.20 |
5. C# Exception (0) | 2021.01.11 |
4. C# foreach문, yield (0) | 2021.01.10 |
3. C# 변수, 상수, 배열, 문자열 (0) | 2021.01.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C#
- 팩토리메서드패턴
- C++
- initializer_list
- 유니티기초
- emplace
- 이진 변환 반복하기
- unity6
- dfs
- modern C++
- ModernC++
- 카카오코딩테스트
- STL컨테이너
- 코딩테스트
- 스택영역
- delegate
- 문자열정수변환
- UnionFind
- range based for
- trailing return type
- Event
- Algorithm
- STL
- 빌더패턴
- 힙영역
- 유니온파인드
- 알고리즘
- 프로그래머스
- 유니티6
- 유니티
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함