Efficient C 為什麼要把泛型作為返回值

2021-06-27 16:50:42 字數 1014 閱讀 1805

最近做一題關於泛型返回值的題,結果發現:

1:很多人做錯誤了;

2:很多人疑問,泛型作為返回值有什麼意義;

題目如下:

「編寫乙個函式,要求輸入的引數和輸出的結果都是泛型。」

典型的錯誤回答之一:

public listfunction(u parameter)

典型的錯誤回答之二:

void getlist(ref t t1, out t t2) where t : list

關於錯誤回答1,是因為一想到泛型,很多人便想到集合,沒錯,泛型集合是泛型的乙個重要應用場景,但是,這跟泛型本身有什麼關係。

很多人自然就提出來第二個疑問,那讓泛型作為返回值,有什麼意義呢,我們先來且看下面的例子:

public t getactivatedserver(netidentity netidentity, string name)

呼叫的**為:

iclientcontract client = remoteobjectmanager.manager.getactivatedserver(target, "client");

另外,如果大家對linq熟悉的話,會發現linq中有不少方法也使用了泛型返回值,我們來舉乙個非常有用的集合方法find,以下是這個方法的標準實現(.net內部**):

public t find(predicatematch)

for (int i = 0; i < this._size; i++)

}return

default(t);

}

其標準的呼叫**如:

marshalbyrefobject marshal = objreflist.find(target =>

);

最後,附上本題的標準答案:

tresoult gett(t1 t)

Efficient C 為什麼要把泛型作為返回值

最近做一題關於泛型返回值的題,結果發現 1 很多人做錯誤了 2 很多人疑問,泛型作為返回值有什麼意義 題目如下 編寫乙個函式,要求輸入的引數和輸出的結果都是泛型。典型的錯誤回答之一 public listfunction u parameter 典型的錯誤回答之二 void getlist ref ...

為什麼要人造元素 設計中為什麼要把各種元素對齊放置

常用word辦公的朋友應該都不會陌生。左對齊 居中對齊 右對齊 居中對齊 都是相當常見的對齊方式,這有啥可聊的。咱們先不說文字排版上的對齊方式,先看看生活中它們常常出現在 超市擺放商品的貨架 呈放射狀擺放的鉛筆 擺放整齊的共享單車 排列整齊的活鉛字 格式整齊的段落比格式雜亂的更好看 對齊擺放的物品比...

為什麼要把頁面放在 WEB INF 路徑下?

1.基於不同的功能jsp 被放置在不同的目錄下 這種方法的問題是這些頁面檔案容易被偷看到源 或被直接呼叫。某些場合下這可能不是個大問題,可是在特定情形中卻可能構成安全隱患。使用者可以繞過struts的controller直接呼叫jsp同樣也是個問題。為了減少風險,可以把這些頁面檔案移到web inf...