【譯】在非泛型類中建立泛型方法

目錄:http://www.javashuo.com/article/p-ziomynzt-x.htmljavascript

能夠建立泛型類,像這樣html

class ThingWriter<T> { public void Write(T thing) { Console.WriteLine(thing); } } 

這是一個泛型類,它使用類型 T 做爲 Write 方法中的方法參數。能夠按這種方式去使用:java

var w = new ThingWriter<int>(); w.Write(42); 

即便類自己不是泛型,也能夠建立泛型方法。spa

class ThingWriter { public void Write<T>(T thing) { Console.WriteLine(thing); } } 

請注意, ThingWriter 類自己並不是泛型。須要這樣調用泛型方法:code

var w = new ThingWriter(); w.Write<int>(42); 

或者經過利用泛型類型去推斷,編譯器能夠經過傳遞給 Write 方法的類型 int 來肯定(計算出)實際的類型。htm

var w = new ThingWriter(); w.Write(42); 

章節:Creating Generic Methods in Non-GenericClasses
譯書名:《C# 奇淫巧技 -- 編寫更優雅的 C#》
原書名:《C# Tips -- Write Better C#》
網址:https://leanpub.com/cstipsblog

相關文章
相關標籤/搜索