C# 에서는 람다 표현식을 활용하여 속성(Property)과 메서드(Method)를 간결하게 표현할 수 있습니다. 하지만 둘은 형태가 매우 유사해 보이기 때문에 혼동할 수 있습니다. 이 글에서는 람다 표현식을 사용한 속성과 메서드의 차이를 살펴보고, 언제 어떤 방식을 사용하는 것이 적절한지 알아보겠습니다.
람다 표현식을 사용한 속성과 메서드
다음 두 코드를 비교해 보겠습니다.
class Example {
public int Age => 30; // 속성 (Property)
public int Age() => 30; // 메서드 (Method)
}
하나는 속성이고 하나는 함수입니다.
람다 표현식으로 코드를 축약했기 때문에 언뜻 보면 비슷해서 헷갈릴 수 있습니다.
하지만 자세히 보면 괄호 () 의 유무로 판단할 수 있습니다. 속성은 () 없이 변수처럼 접근하고, 메서드는 () 를 사용하여 호출해야 합니다.
속성과 메서드의 사용 예시
속성 (Property)
class Player {
private int level = 5;
public int Level => level; // 속성: 플레이어의 레벨을 표현
}
// 사용 예시
Player player = new Player();
Console.WriteLine(player.Level); // 5 (변수처럼 접근)
메서드(Method)
class Player {
private int level = 5;
public int Level() => level * 2; // 메서드: 레벨을 기반으로 계산 수행
}
// 사용 예시
Player player = new Player();
Console.WriteLine(player.Level()); // 10 (함수처럼 호출)
정리
이처럼 람다 표현식을 사용한 속성과 메서드는 매우 유사해 보이지만, 괄호 () 의 유무로 쉽게 구분할 수 있습니다. 속성은 객체의 상태를 표현하는 데 적합하고, 메서드는 특정 동작을 수행할 때 사용됩니다.
결국 중요한 것은 어떤 개념이 더 적절한지 판단하는 것입니다. 단순한 데이터 반환이라면 속성을, 연산이 필요하거나 특정 기능을 수행해야 한다면 메서드를 선택하면 됩니다.
비슷하게 보이지만, 목적과 쓰임이 다르다는 점을 기억하면 헷갈릴 일이 없겠죠!
'C#' 카테고리의 다른 글
C# 에서 readonly 는 참조 타입에서 어떻게 동작할까? (0) | 2025.04.01 |
---|---|
List<T> 의 동작 방식 (0) | 2025.03.16 |
delegate 를 기반으로 한 상태 기계 구현해보기 (0) | 2025.03.12 |
필드 (Field) 와 속성 (Property) 에 대해서 (0) | 2025.03.11 |
event Action 을 활용한 이벤트 처리 (0) | 2025.03.11 |