2010-07-04 83 views
0

我應該何時使用方法重載進行實時開發,請提供一些鏈接。什麼時候應該實時使用方法重載項目?

+1

@Closers,我無法找到一個副本。這是一個真正的問題。 – 2010-07-04 08:10:40

+3

當你說「實時」是暗示「真實生活」,正如Henk下面提到的,或者你正在研究性能至關重要的實時軟件應用程序?我懷疑亨克是正確的,但如果我們能夠幫助消除問題的答案,那麼答案可能會更合適,當然也會對其他有類似問題的人有幫助。 – 2010-07-04 08:21:27

+1

@亨克因爲包含「實時」一詞而很難說出什麼是被問到的 - 它已經吸引了關於實時編程的答案,並且這個問題在那個領域是沒有意義的。如果不恰當地使用「實時」,最好再次提出問題。 – 2010-07-04 09:23:26

回答

0

當多個方法具有相同的目的,但有多種方法啓動時,使用重載(推薦)。

所以我們寧願

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) { .... } 
2

方法重載是一種用於類設計的OOP技術。它與實時開發無關。

如果您問的是現實世界中使用方法重載 - 這是一種有用的技術,您可以看到它在整個BCL中都被使用。

示例是一些Linq擴展方法,其中許多擴展方法有多個過載(請參閱IEnumerable<T>)。

根據參數(例如排序),可以通過幾種不同方式完成同一操作時,最好使用方法重載。不帶參數的重載可能會應用默認排序。帶有排序順序的重載將允許排序,而另一個排序可能會有一個確定排序算法的Func委託。

+0

稍微有點靈活性,我把它當作「現實生活」項目。 – 2010-07-04 08:15:32

+1

@亨克霍爾特曼 - 夠公平的......我想我看到了「實時」,並立即想到了RT編程。 – Oded 2010-07-04 08:19:04

0

現在好吧,像初始化和命名參數在c#中的東西,它似乎並不是必要的。

+0

我想補充一點,如果你正在創建一個公共API,並且你想要真正鎖定事物的使用方式,那麼我認爲這會更有用。 – spinon 2010-07-04 07:46:55

0

方法重載可能有用的一種情況是如果你正在構建一些公共API。例如,ASP.NET MVC使用它通過HTML幫助程序提供功能,您可以在其中使用不同參數多次重載同一方法。

相關問題