我想创建泛型函数Math.Abs()但我不知道如何做到这一点.如果我创建一个类Math我不能为T值创建方法Abs,因为我不知道T的类型.
如果有人知道怎么做?
谢谢
六种选择:
TDictionary<Type, Func<object, object>>为您关心的每种类型创建一个包含委托的代理dynamic在.NET 4中使用:
public T Foo<T>(T value)
{
dynamic d = value;
return Math.Abs(d);
}
Run Code Online (Sandbox Code Playgroud)如果可能的话,我可能会选择过载选项.它会在编译时适当地约束你,并避免任何潜在的耗时拳击/反射.