C# 在C中声明泛型静态方法#

C# 在C中声明泛型静态方法#,c#,.net,C#,.net,有没有办法在C#中声明泛型静态方法? 例如: public static class Class<T,P> where T:class where P:class { public static T FromTtoP (this P ob) { ... } } public static class MyExtensions { public static T ConvertToT<T, P>(this P ob

有没有办法在C#中声明泛型静态方法?
例如:

public static class Class<T,P> 
    where T:class
    where P:class
{

    public static T FromTtoP (this P ob)
    {
    ...
    }

}
public static class MyExtensions
{
  public static T ConvertToT<T, P>(this P ob)
    where T : class
    where P : class
  {
    // ...
  }
}
公共静态类
T:在哪里上课
其中P:类
{
公共静态T fromtop(此P ob)
{
...
}
}
此代码不起作用。 我想从DTO映射到DAL,反之亦然

我试着让这个类非泛型

public static class Class
{

    public static TDTO MapToDTO<TDTO, TDAL>(this TDAL dal)
                where TDTO : class
                where TDAL : class
            {

            }
}
公共静态类
{
公共静态TDTO映射到(此TDAL dal)
TDTO地点:班级
哪里有TDAL:class
{
}
}

我从“this”收到一条错误消息。

在泛型类中不能有扩展方法。相反,将方法设置为泛型,并使类保持非泛型

例如:

public static class Class<T,P> 
    where T:class
    where P:class
{

    public static T FromTtoP (this P ob)
    {
    ...
    }

}
public static class MyExtensions
{
  public static T ConvertToT<T, P>(this P ob)
    where T : class
    where P : class
  {
    // ...
  }
}
公共静态类MyExtensions
{
公共静态T转换器(此P ob)
T:在哪里上课
其中P:类
{
// ...
}
}

当然,这并不能很好地工作-无法推断方法调用的参数,这使得这种方法毫无用处。

什么是不工作?您是否收到任何异常或错误消息?你能更具体地说明你的问题吗?为什么你认为泛型是解决你问题的方法?你为什么要用扩展方法来实现这一点?你不是在声明泛型方法——你现在是在声明泛型类。你是为我编译的编辑和“我从
这个
得到错误消息”;你使用的是最新的C#编译器吗?另外:说“这个核心不工作”和“我收到一条错误消息”是没有帮助的。对发生的事情的完整描述(包括复制和粘贴任何消息等)更有用。我知道你在那里做什么了!但我可以告诉你要注意。如果DTO跨层使用,而DAL只是一层,那么DTO更像是一个接口。我知道这可能会增加混乱,但您正在尝试做一些有详细记录且概念上不容易的事情。欢迎使用OO设计:)这里的重要部分是不要忘记在方法名称后添加
,如
Convert