메서드란?
일련의 코드를 하나의 이름으로 묶은것을 말합니다.
class 클래스 이름
{
[한정자] [반환 형식] [메서드 이름] ( [매개 변수] )
{
//실행 코드
return [반환 형식 결과];
}
}
여기서 한정자는 다음을 뜻합니다.
public=공개(모두 사용)
private=일부 공개(자신이 만들어진 클래스나 상속받는 하위 클래스에서 사용)
protected=비공개(자신의 클래스에서만 사용)
반환 형식
-void, int, string 등 자료형이 올수있습니다.
매개변수
-메서드의 마지막에 오는 ()안에코드에서 사용할 데이터를 받습니다.
static
-정적할당은 프로그램이 처음 실행되면 자동으로 메모리에 데이터가 저장됩니다.
메서드 오버로딩
-사용할때 같은 메서드지만 매개변수의 형식에 따라 각각 다른 대응을 할 수있습니다.
예를 들면 Console.WriteLine의 메서드를 사용할때 int, string 등등
다양한 매개변수를 넣어 사용할 수 있습니다.
void PrintMessage(string message)
{
Console.WriteLine("Message: " + message);
}
void PrintMessage(int number)
{
Console.WriteLine("Number: " + number);
}
재귀호출
-재귀호출이란 메서드가 자기 자신을 호출하는것을 뜻합니다.
호출된 메서드를 순서대로 쌓고 메서드를 반환하면서 스택에서 순서대로 제거되는 방식으로 작동합니다.
void CountDown(int n)
{
if (n <= 0)
{
Console.WriteLine("Done");
}
else
{
Console.WriteLine(n);
CountDown(n - 1); // 자기 자신을 호출
}
}
// 메서드 호출
CountDown(5);
재귀호출은 반드시 종료 조건을 명확하게 정의해주어야 합니다.
구조체
-구조체는 사용자가 정의하는 자료형입니다.
value 형식이며 변수와 메서드로 구성되고, struct으로 선언할 수 있습니다.
struct Person
{
public string Name;
public int Age;
public void PrintInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
구조체에 접근할때는 .을 사용하면 됩니다.
person1.PrintInfo();