메서드(Method)는 하나의 작업을 수행하기 위해 함께 묶인 명령문들의 집합입니다. 모든 C# 프로그램에는 반드시 Main이라는 이름의 메서드를 포함하는 클래스가 최소 하나 이상 존재합니다.
메서드를 정의한다는 것은 곧 메서드의 구조를 이루는 요소들을 선언하는 작업입니다. C#에서 메서드를 정의하는 기본 문법은 다음과 같습니다.
<접근 지정자> <반환 타입> <메서드 이름>(매개변수 목록) {
메서드 본문
}메서드 정의의 핵심 요소
접근 지정자(Access Specifier) − 다른 클래스에서 해당 변수나 메서드에 접근할 수 있는지 여부, 즉 가시성(Visibility)을 결정합니다.
반환 타입(Return Type) − 메서드는 처리 결과로 값을 반환할 수 있습니다. 반환 타입은 메서드가 돌려주는 값의 데이터 타입이며, 값을 반환하지 않는 경우에는
void로 지정합니다.메서드 이름(Method Name) − 클래스 내에서 고유하게 식별되는 이름이며, 대소문자를 엄격하게 구분합니다. 따라서 같은 클래스에 선언된 다른 식별자와 동일한 이름을 사용할 수 없습니다.
매개변수 목록(Parameter List) − 소괄호 안에 위치하며, 메서드에 데이터를 전달하거나 결과를 받아오는 통로 역할을 합니다. 매개변수의 타입, 순서, 개수를 의미하고, 선택 사항이므로 아예 없을 수도 있습니다.
메서드 본문(Method Body) − 실제로 필요한 작업을 수행하기 위한 명령문들의 집합을 담고 있는 부분입니다.
C# 메서드 정의 예제
다음은 문자열에 중복되지 않은 고유한 글자들만 존재하는지 확인하는 예제입니다. 여기서는 CheckUnique()라는 C# 메서드를 직접 만들어 사용해 보겠습니다.
예제 코드
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Demo {
public bool CheckUnique(string str) {
string one = "";
string two = "";
for (int i = 0; i < str.Length; i++) {
one = str.Substring(i, 1);
for (int j = 0; j < str.Length; j++) {
two = str.Substring(j, 1);
if ((one == two) && (i != j))
return false;
}
}
return true;
}
static void Main(string[] args) {
Demo d = new Demo();
bool b = d.CheckUnique("amit");
Console.WriteLine(b);
Console.ReadKey();
}
}
위 코드는 문자열의 각 문자를 앞뒤로 비교하여 서로 다른 위치에 같은 글자가 존재하면 false를, 끝까지 중복이 발견되지 않으면 true를 반환하는 방식으로 동작합니다.
실행 결과
True
이처럼 메서드를 활용하면 특정 로직을 하나의 단위로 묶어 재사용할 수 있으며, 코드의 가독성과 유지보수성도 크게 향상됩니다.