C# 메서드 기초를 명확한 예제와 함께 마스터하세요: 선언, 호출, 매개변수 처리, 반환 값, 내장 기능 활용까지.
메서드는 특정 작업을 수행하는 재사용 가능한 코드 블록입니다. 예를 들어 원을 그리고 색칠하는 드로잉 프로그램을 만든다면, 원 그리기와 색칠을 두 개의 별도 메서드로 분리할 수 있습니다. 이 모듈식 접근은 가독성, 테스트 용이성, 재사용성을 높입니다.
C#에서 메서드 선언
C# 메서드 정의 기본 문법:
returnType methodName() {
// 메서드 본문
}
구성 요소:
returnType – 메서드가 반환하는 데이터 타입. 반환 값 없으면 void 사용.
methodName – 메서드 참조용 식별자.
메서드 본문 – 메서드 실행 시 수행될 문장들, 중괄호로 감쌈.
예시:
void display() {
// 코드
}
display()가 메서드 이름, void는 반환 값 없음 의미.
C#에서 메서드 호출
선언 후 메서드 이름 뒤에 괄호로 호출. display() 예:
// 메서드 호출
display();
실전 예제: 메서드 사용
using System;
namespace MethodDemo {
class Program {
// 메서드 선언
public void Display() {
Console.WriteLine("Hello World");
}
static void Main(string[] args) {
// Program 인스턴스 생성
Program p1 = new Program();
// Display 메서드 호출
p1.Display();
Console.ReadLine();
}
}
}
출력
Hello World
Program 클래스의 p1 객체 생성 후 Display() 메서드 호출.
메서드 반환 타입
메서드는 데이터를 반환하거나 void일 수 있습니다. 반환 값 필요 시 return 문으로 호출자에게 값 전달, 메서드 반환 타입은 값 타입과 일치해야 함.
int AddNumbers() {
int sum = 5 + 14;
return sum;
}
예제: 정수 반환
using System;
namespace MethodDemo {
class Program {
// 정적 메서드 반환 타입 있음
static int AddNumbers() {
int sum = 5 + 14;
return sum;
}
static void Main(string[] args) {
int sum = AddNumbers();
Console.WriteLine(sum);
Console.ReadLine();
}
}
}
출력
19
static 메서드는 클래스 소속이므로 인스턴스 없이 호출 가능.
매개변수 있는 메서드
매개변수로 메서드에 입력 값 전달. 메서드 시그니처에 선언하고 호출 시 인수 전달.
int AddNumber(int a, int b) {
return a + b;
}
인수 전달 호출:
AddNumber(100, 100);
예제 1: 두 숫자 더하기
using System;
namespace MethodDemo {
class Program {
int AddNumber(int a, int b) {
return a + b;
}
static void Main(string[] args) {
Program p1 = new Program();
int sum = p1.AddNumber(100, 100);
Console.WriteLine("Sum: " + sum);
Console.ReadLine();
}
}
}
출력
Sum: 200
예제 2: 단일 매개변수 메서드
using System;
namespace MethodDemo {
class Program {
string Work(string task) {
return task;
}
static void Main(string[] args) {
Program p1 = new Program();
string result = p1.Work("Cleaning");
Console.WriteLine("Work: " + result);
Console.ReadLine();
}
}
}
출력
Work: Cleaning
내장 메서드 (Built-in Methods)
사용자 정의 메서드 외에 C#은 풍부한 내장 메서드 라이브러리 제공. 예:
Math.Sqrt() – 제곱근 계산.
string.ToUpper() – 문자열 대문자 변환.
예제: Math.Sqrt 사용
using System;
namespace MethodDemo {
class Program {
static void Main(string[] args) {
double result = Math.Sqrt(9);
Console.WriteLine("Square root of 9: " + result);
}
}
}
출력
Square root of 9: 3
Math.Sqrt는 .NET의 System.Math 클래스 소속으로 마이크로소프트 문서화됨.
C#은 매개변수 리스트가 다르면 같은 이름 메서드 여러 개 정의 허용. 이를 메서드 오버로딩이라 함.
using System;
namespace MethodOverloadDemo {
class Program {
// 1개 매개변수 오버로드
void Display(int a) {
Console.WriteLine("Arguments: " + a);
}
// 2개 매개변수 오버로드
void Display(int a, int b) {
Console.WriteLine("Arguments: " + a + " and " + b);
}
static void Main(string[] args) {
Program p1 = new Program();
p1.Display(100);
p1.Display(100, 200);
Console.ReadLine();
}
}
}