첫 번째 질문은 여기에 있습니다. 잘하면 모두 나를 부드럽게 감동시킬 것입니다!C#에서 다형성을 구현하는 가장 좋은 방법은 무엇입니까?
나는 다형성에 대해 지난 며칠 동안 몹시 많이 읽었고, 그것을 C#에서하는 일에 적용하려고 시도했다. 그리고 그것을 구현하는 몇 가지 다른 방법이있는 것으로 보인다. 나는이 문제를 다루기를 희망하지만, 내가 명확히하지 않아도 기뻐할 것입니다.
내가 무엇을 볼 수에서, 나는 3 가지 옵션을 가지고 :
- 난 그냥 기본 클래스에서 상속과 내 파생 클래스를 원하는 그 어떤 방법에 키워드를 '
virtual
'사용할 수 있습니다 ~ 으로 대체하십시오. - 가상 메서드 을 사용하여 추상 클래스를 구현할 수 있으며 그 방법으로 수행 할 수 있습니다.
- 인터페이스를 사용할 수 있습니까?
베이스에서 구현 로직을 필요로하지 않는다면 인터페이스가 가장 유연성이 있습니다 (다중 상속과 관련하여 자신을 제한하지 않음). 하지만 만약 파생 된 클래스가 무엇을 하든지간에 무엇인가 할 수있는 기반을 필요로한다면, 1 또는 2로가는 것이 더 나은 해결책이 될 것입니다. 이 사람에 대한 모든 입력에 대한
감사합니다 -이 사이트에 다른 곳에서 모두, 너무 많은 주말을 읽고, 그리고 내가 지금 접근 방법을 이해하고, 아직 난 그냥 언어 별 방법 경우에 명확하게 할 생각 나는 바른 길을 가고있다. 잘하면이 태그를 제대로 붙 였으면합니다.
건배, 테리
과부하를 생성하는 방법으로 extenson 메서드를 사용하는 것이 좋습니다. 그렇게하면 인터페이스가 구현하기 쉽고 오버로드가 모든 구현에서 동일한 방식으로 처리됩니다. –
나는 설명의 의미로 이것을 정말로 좋아한다. 마크, 아래의 너와 얀은 답을 설명하는데 많은 노력을 기울 였는데, 고맙다 - 분명히 그 밖의 것들을보기 위해 기다릴 것이지만, 고마워 - 정말 도움이된다! –
@Jacob - 실제로; C# 4.0을 사용하기 전까지는 선택적 매개 변수를 사용하는 것이 좋습니다. 예를 들어 필자는 인터페이스에 "페이징 된"버전의 쿼리 메서드를 사용하는 경향이 있으며 기본 메서드 인 "모든 것을 얻으십시오"(더 간단한) 오버로드를 제공하기 위해 확장 메서드를 사용합니다. 그럼 난 콘크리트 사이트, 2/3/4/등 –