ins*_*ite 44 c# oop generics syntax class
我现在已经看过几次这种语法了,它开始让我担心,
例如:
iCalendar iCal = new iCalendar();
Event evt = iCal.Create<Event>();
CMS*_*CMS 37
这是一个通用方法,使用类型参数声明Create,并检查此链接以获取更多信息:
Jon*_*eet 25
它正在调用泛型方法 - 所以在你的情况下,方法可以像这样声明:
public T Create<T>()
您可以在尖括号中指定type参数,就像创建泛型类型的实例一样:
List<Event> list = new List<Event>();
这有帮助吗?
泛型方法和泛型类型之间的一个区别是编译器可以尝试推断类型参数.例如,如果您的Create方法是:
public T Copy<T>(T original)
你可以打电话
Copy(someEvent);
并且编译器会推断你的意思是:
Copy<Event>(someEvent);