这是对 C# 泛型的精彩介绍,这就是它。
基本上,您只需将 T 和 S 替换为您想要的任何内容。T 是您的返回类型,S 将是用于最终参数的类型 ( value
)
例如:
var myObject = GetLookupValue<MyObject, MyOtherObject>("sTName", "sFName", "sLuName", (MyOtherObject)myOtherObject);
这允许更健壮的代码。您可以将一种方法塑造成您需要的任何东西
泛型是您如何将任何内容放入List<T>
:
List<String> stringList = new List<String>();
List<int> intList = new List<int>();
...
在编译时,您的泛型值被内置到您的代码中。所以,如果你对我上面的例子做了一个 dotPeek,你会看到这样的东西:
public MyObject GetLookupValue<MyObject, MyOtherObject>(string sTName, string sFName, string sLuName, MyOtherObject value)
{
return (MyObject) this.db.a(sTName, sFName, sLuName, false, (object) value, false, false);
}
***但是,在写出来时,将参数value
作为泛型似乎毫无意义,因为它只是被强制转换为object
.... 他们可能已经成功了T GetLookupValue<T>(string sTName, string sFName, string sLuName, object value);
。(它允许最终装箱一个值对象(即 int、double 等)