C#에서 사용자 지정 메서드를 정의하는 방법
C#에서 사용자 지정(커스텀) 메서드를 정의할 때는 다음과 같은 기본 구문을 사용합니다.
<Access Specifier> <Return Type> <Method Name>(Parameter List) {
Method Body
}
각 구성 요소의 의미는 다음과 같습니다.
- Access Specifier(접근 지정자): 메서드에 접근할 수 있는 범위를 결정합니다. 예를 들어 public으로 선언하면 클래스 외부에서도 자유롭게 호출할 수 있습니다.
- Return Type(반환 형식): 메서드가 반환하는 값의 데이터 형식입니다. 값을 반환하지 않는 경우에는 void를 사용합니다.
- Method Name(메서드 이름): 메서드를 호출할 때 사용하는 고유한 이름으로, C#의 명명 규칙을 따라야 합니다.
- Parameter List(매개변수 목록): 메서드에 전달되는 입력값 목록입니다. 매개변수가 필요 없다면 비워둘 수 있습니다.
아래 예제에서는 두 개의 사용자 지정 메서드를 정의하고 호출합니다. funcReverse() 메서드는 숫자의 이진 표현을 비트 연산으로 뒤집고, checkPalindrome() 메서드는 원래 숫자와 뒤집은 숫자를 비교하여 해당 숫자의 이진 표현이 팰린드롬(회문)인지 확인합니다.
예제
using System;
public class Demo {
public static long funcReverse(long num) {
long myRev = 0;
while (num > 0) {
myRev <<= 1;
if ((num & 1) == 1)
myRev ^= 1;
num >>= 1;
}
return myRev;
}
public static bool checkPalindrome(long num) {
long myRev = funcReverse(num);
return (num == myRev);
}
public static void Main() {
// 5의 이진수 값은 101입니다.
long num = 5;
if (checkPalindrome(num))
Console.WriteLine("Palindrome Number");
else
Console.WriteLine("Not a Palindrome Number");
}
}
출력 결과
Palindrome Number
숫자 5의 이진 표현은 101로 앞에서 읽으나 뒤에서 읽으나 같기 때문에 팰린드롬에 해당합니다. 따라서 checkPalindrome() 메서드가 true를 반환하고, Main() 메서드 안에서 호출된 조건문에 따라 콘솔에 "Palindrome Number"가 출력됩니다. 이처럼 메서드를 정의해 두면 필요할 때마다 이름만으로 재사용할 수 있어 코드의 가독성과 유지보수성이 크게 향상됩니다.