728x90
https://www.youtube.com/watch?v=GcYz5Pv6Joc&list=PLVsNizTWUw7GN8wPRhclbKuQa9aI9Cj2V&index=6
📌 메서드란?
- 일련의 코드를 하나의 이름 아래 묶은 것
- 묶음 코드는 메서드의 이름을 불러 주는 것만으로도 실행
- C/C#에서는 함수, 파스칼에서는 프로시져 등으로 부름
◾ 메서드 선언하기
- 클래스 내부에 선언
- 메서드 선언 필수요소 3가지
1) 반환형식
2) 메서드 이름
3) 매개변수 목록 - 결과를 반환할 때 return 문 사용
class 클래스이름
{
한정자 반환_형식, 메서드의 이름 ( 매개변수_목록 )
{
//실행하고자 하는 코드
// return 메서드의_결과;
}
}
◾ 메서드 호출하기
반환형식 메서드이름 = 클래스이름.메서드();
◾ 참조로 인수 전달하기
- 매개변수가 인수를 참조
- ref 키워드 사용하여 선언/호출
public void Swap ( ref int a, ref int b)
{
int tmp = b;
b = a
a = tmp
}
public void Main (string[] args)
{
int x = 3;
int y = 4;
Swap (ref x, ref y);
}
◾ 출력 전용 매개변수
- 메서드는 out 키워드로 한정한 매개변수에 결과를 입력야함
- out 키워드는 ref키워브돠 비슷하지만, 참조로 인수 값을 전달받지 못하는 경우 인수의 값이 수정되지 않아도 컴파일러가 에러를 출력하지 않음
void Divide (int a, int b, out int quotient, out int remainder)
{
quotient = a/bl
remainder = a%b;
}
int a = 20;
int b = 3;
int c;
int d;
Divide (a, b, out c, out d);
Console.WriteLine("Quotient : {0}, Remainder {1} : ", c, d);
◾ 메서드 오버로딩 - 하나의 메서드 이름에 여러 버전의 구현을 올리는 것
int Plus (int a, int b)
{
return a+b;
}
double Plus (double a, double b)
{
return a+b;
}
int result1 = Plus (1,2);
double result2 = Plus(1.2, 3.4);
◾ 가변길이 인수 - 개수를 유연하게 조절할 수 있는 인수 - Params 키워드와 배열을 이용하여 선언 - 데이터 형식이 같다면 가변길이 인수를 통해 오버로딩 대신 사용
int sum (params int[] args )
{
int sum = 0;
for(int i=0; i<args.Length; i++)
{
sum += args[i]l
}
return sum;
}
int total = 0;
total = Sum (1, 2);
total = Sum (1, 2, 3);
total = Sum (1,2,3,4,5 ... 10);
◾ 명명된 인수 - 메서드 호출 시 매개변수의 이름을 명시하여 매개변수에 데이터를 바인드하는 기능
static void PrintProfile (string name, string phone)
{
Console.WriteLine ("Name:{0}, Phone:{1}", name, phone);
}
static void Main(string[] args)
{
PrintProfile ( name : "박찬호", pohne : "010-1234-5678");
}
◾ 선택적 인수 - 입력해도되고 안해도됨
- 메서드 선언시 매개변수에 기본값을 할당 - 호출자가 인수를 입력하지 않는 경우 메서드는 기본값이 할당된 매개변수 사용 - 호출자는 해당 매개 변수에 대한 인수 입력 여부 선택이 가능해짐
void MyMethod (int a=0; int b=0)
{
Console.WriteLine("{0},{1}", a,b);
}
MyMethod(3); //매개변수 b생략
MyMethod(3,4);
728x90
'C# > 이것이 C#이다' 카테고리의 다른 글
[C# 기초강의] Ch 08. 인터페이스와 추상클래스 (0) | 2023.08.10 |
---|---|
[C# 기초강의] Ch 07. 클래스 (0) | 2023.08.09 |
[C# 기초강의] Ch 05. 흐름 제어 (0) | 2023.08.09 |
[C# 기초강의] Ch 04. 데이터를 가공하는 연산자 (0) | 2023.08.09 |
[C# 기초강의] Ch 03. 데이터를 담는 변수와 상수 (0) | 2023.08.09 |