2010-08-04 5 views
1

다른 클래스의 객체를 반환하는 속성을 정의한 클래스 정의가 있습니다. 클래스 정의 속성 또는 메서드?

Public Property GetAllAdults() as Adults 
... 
End Property 

나는 그것이 클래스의 속성을 정의하지 않으며, 매개 변수 확장 할 수 없기 때문에이 클래스의 메소드해야한다는 주장을했다. 이것이 특성 대 기능으로 정의되어야하는 이유는 무엇입니까?

답변

3

나는 이것이 실제로 어떤 행동을 수행하는 것이 아니라 단순한 게터이기 때문에, 그것은 Property로서 훨씬 더 적합하다고 주장 할 것이다.

이름이 속성이기 때문에 GetAllAdults()에서 Adults로 변경해야합니다.

또한 게터 만 있기 때문에 컬렉션이 읽기 전용이라고 생각할 수도 있습니다. 그렇지 않은 경우가 있습니다. 속성은 쉽게 데이터 바인딩 할 수 있습니다로

Public Property Adults() as ReadOnlyCollection(Of Adult) 
... 
End Property 
+0

당신은 빠르지 만, 제가 가지고있는 모든 좋은 생각, 나는 또한 여기에서 찾을 수 있습니다! 내가 사임하고 내 대답을 삭제했습니다 :-P – jdehaan

+0

그건 내 생각의 일종이야. 나는 방금 방탕했고, 나는 방법 대신에 속성을 사용할 수있는 가능성에 대해서는 생각해 본 적이 없었습니다. – TreK

1

이 컬렉션을 정의 : 그것은 진정으로 읽기 전용, 당신은 (가능한 경우) ReadOnlyCollection 등의 속성을 노출해야합니다 확인하십시오.

0

간단히 GetAllAdults()의 이름을 Adults()로 바꾸면 클래스의 속성을 정의하는 속성의 지침을 충족시킬 수 있습니다. 당신이 말했던 것처럼 확장하지 않으므로, 왜 symantics에서 간단하게 해결할 수있는 코드 연기를 생성합니까?

관련 문제