[C#] 프로퍼티가 아닌 메서드로 구현해야 할 때

private int _memberValue = 0;

public string NextValue
{
	get
	{
		_memberValue++;
		return "값";
	}
}

문제. 이 코드에 어떤 잠재적 위험이 있는지 기술하시오.

정답. 디버깅시 디버거가 NextValue 프로퍼티를 자동으로 호출하여 멤버 변수 _memberValue의 값이 예기치 않게 변할 수 있다. 이같은 문제를 피하려면 프로퍼티가 아닌 메서드를 쓰면 된다. 이와 유사한 문제를 다룬 글로는 ToString은 잘 짜야 한다란 게 있다.

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu