有没有办法在C#中声明一个通用的静态方法?
例如:
public static class Class<T,P>
where T:class
where P:class
{
public static T FromTtoP (this P ob)
{
...
}
}
此代码不起作用。 我想从DTO映射到DAL,反之亦然。
我试过让这个类非泛型
public static class Class
{
public static TDTO MapToDTO<TDTO, TDAL>(this TDAL dal)
where TDTO : class
where TDAL : class
{
}
}
我从“this”收到错误消息。
答案 0 :(得分:6)
您不能在泛型类中使用扩展方法。相反,使方法通用,并使该类非通用。
例如:
public static class MyExtensions
{
public static T ConvertToT<T, P>(this P ob)
where T : class
where P : class
{
// ...
}
}
当然,这不会很好用 - 没有办法推断方法调用的参数,这使得这种方法毫无用处。