실시간 오버레이 방식을 사용해야하는 경우에는 몇 가지 링크를 제안하십시오.실시간 프로젝트에서 메소드 오버로딩을 언제 사용해야합니까?
답변
여러 가지 방법이 동일한 용도이지만 두 가지 이상의 방법으로 시작하는 경우 오버로드가 사용됩니다 (권장).
그래서 우리는 오히려int Add(int a, int b) { ...}
int Add(int a, int b, int c) { ... }
보다
int Add2(int a, int b) { ...}
int Add3(int a, int b, int c) { ... }
또는
int Add(int a, int b, int? c) { ...}
마지막 예는 또한 사용하여 수행 할 수 있습니다 (C# 4) 선택적 매개 변수.
과부하에 대한 또 다른 좋은 후보 :
void ReadXml(string fileName) { ... }
void ReadXml(Stream strm) { .... }
메서드 오버로드는 클래스 디자인에 사용되는 OOP 기술입니다. 실시간 개발과는 아무런 관련이 없습니다.
실제 오버로드 방법에 대해 묻는다면 유용한 기법이므로 BCL 전체에서 사용되는 것을 볼 수 있습니다.
예는 Linq 확장 메소드 중 일부입니다. 확장 메소드 중 많은 메소드가 다중 오버로드를 가지고 있습니다 (IEnumerable<T>
참조).
메서드 오버로드는 매개 변수에 따라 여러 가지 방법으로 동일한 작업을 수행 할 수있는 경우에 사용하는 것이 가장 좋습니다 (예 : 정렬). 매개 변수가없는 오버로드는 기본 정렬을 적용 할 수 있습니다. 정렬 순서가있는 오버로드는 정렬 순서를 허용하고 다른 하나는 정렬 알고리즘을 결정하는 Func
대리자를 가질 수 있습니다.
약간의 유연성을 가지고, 나는 이것을 "실제 생활"프로젝트로 읽었습니다. –
@Henk Holterman - 공정한 ... 나는 "실시간"을보고 즉시 RT 프로그래밍에 대해 생각해 보았습니다. – Oded
이제는 C#에서 이니셜 라이저와 명명 된 매개 변수와 같은 것들이 필요하지는 않습니다.
한 가지 덧글 한 가지 덧붙여 말하지만, 공용 API를 만들고 실제로 어떻게 사용되었는지 잠그고 싶다면 이것이 더 유용 할 것이라고 생각합니다. – spinon
일부 공용 API를 작성하는 경우 메소드 오버로드가 유용 할 수있는 시나리오가 있습니다. 예를 들어, ASP.NET MVC는 HTML 헬퍼를 통해 기능을 제공하기 위해이 메서드를 사용합니다.이 메서드는 서로 다른 인수로 여러 번 오버로드됩니다.
- 1. 언제 asp.net 프로젝트에서 wcf를 사용해야합니까?
- 2. Class의 java 5 메소드 캐스트는 언제 사용해야합니까?
- 3. 우리는 ANTLR을 언제 사용해야합니까
- 4. 언제 PHP 프레임 워크를 사용해야합니까?
- 5. div는 언제 사용해야합니까? 프레임은 언제 사용해야합니까? 다른 형식의 동적 콘텐츠는 언제 사용해야합니까?
- 6. Import-Package는 언제 사용해야합니까? Require-Bundle은 언제 사용해야합니까?
- 7. 언제 _aligned_malloc()을 사용해야합니까?
- 8. 언제 FSharpFunc.Adapt를 사용해야합니까?
- 9. cfthread는 언제 사용해야합니까?
- 10. 인터페이스 작성기는 언제 사용해야합니까?
- 11. 언제 OSGi EventAdmin을 사용해야합니까?
- 12. 언제 ConcurrentSkipListMap을 사용해야합니까?
- 13. 언제 jQuery에서 마침표를 사용해야합니까?
- 14. 언제 == 비교기 ===를 사용해야합니까?
- 15. 레일즈 : 언제 자기를 사용해야합니까?
- 16. 언제 GC.SuppressFinalize()를 사용해야합니까?
- 17. 약한 참조는 언제 사용해야합니까?
- 18. 언제 EF4에서 POCO를 사용해야합니까?
- 19. 의존성 주입은 언제 사용해야합니까?
- 20. 언제 $ (document) .ready를 사용해야합니까?
- 21. 언제 개체 데이터베이스를 사용해야합니까?
- 22. 메모리 뷰는 언제 사용해야합니까?
- 23. Clojure에서 언제 deftype을 사용해야합니까?
- 24. Flash는 언제 사용해야합니까?
- 25. 데이터베이스 동의어는 언제 사용해야합니까?
- 26. 하위 도메인은 언제 사용해야합니까?
- 27. 언제, 어떻게 대기열을 사용해야합니까?
- 28. 언제 액터 모델을 사용해야합니까?
- 29. 언제 @property를 사용해야합니까?
- 30. .NET Remoting은 언제 사용해야합니까?
@Closers, 나는 중복을 찾을 수 없습니다. 그리고 그것은 진짜 질문입니다. –
"실시간"이라고 말하면 아래에서 언급 한 Henk이 "실제 생활"을 암시하고 있습니까? 아니면 성능이 중요한 실시간 소프트웨어 응용 프로그램에서 작업하고 있습니까? 저는 헨크가 정확하다고 생각합니다. 그러나 질문을 혼란스럽게 할 수 있다면 대답이 더 적절할 수 있고 물론 유사한 질문을하는 다른 사람들에게 도움이 될 수 있습니다. –
@Henk '실시간'이라는 용어가 포함되어있어 '물어 보는 것을 말하는 것이 어렵다'는 이유로 '@Henk'이 닫힙니다. 실시간 프로그래밍에 대한 답변을 이미 얻었으므로 해당 분야에서 질문을 이해할 수 없습니다 . '실시간'을 부적절하게 사용하지 않고 질문을 다시하는 것이 좋습니다. –