.Net에서 오버로드하는 메서드와 관련된 비용이 있습니까?.Net에서 메서드 오버로드.
그래서이 있으면 추천 방법 :
Calculate (int)
Calculate (float)
Calculate (double)
이러한 방법은 계산 방법에 전달 무엇을, 어떤이 오버로드 확인의 비용이 될 것입니다 기반으로 "동적"런타임에라고?
또는 하나의 Calculate를 사용하여 메서드 본문에서 차이를 만들 수도 있지만 호출 할 때마다 메서드가 메서드를 평가해야한다고 생각했습니다.
오버 헤드없이이 문제를 해결할 수있는 더 나은 방법이나 설계가 있습니까? 또는 더 나은 방법은 이러한 사례를 처리하는 가장 좋은 방법은 무엇입니까? 동일한 클래스/메소드 이름을 갖고 싶지만 다른 동작을 원합니다.
편집 : 감사. 그것이 다른 경우에 한 가지 더 말하십시오. 나는 당신이이 메소드들을위한 DLL과 C#으로 작성된 프로그램을 사용자가 UI 아이템으로 (타입을 지정하지 않고) 추가 할 수있게 해준다고 말하고 싶다. 그래서 사용자는 Calculate (5), Calculate (12.5) 등의 UI 항목을 추가하고 C# app는 이것을 실행합니다. 오버 헤드가 없습니까?
이 질문은 다형성과 완전히 다른 메서드 오버로딩에 대한 것입니다. –
@Cris : .NET 당 명령 당 비용은 거의 없습니다. 대부분 프레임 워크로드 시간이 문제입니다 (현재 ~ 500ms입니까?) –
예 ... 오버로드와 오버라이드를 조사해야합니다. – wowest