在 C# 程序中将当前类/对象的类型传递给泛型方法而无需显式类型引用?

Rob*_*ler 5 c# generics types

调用泛型方法时是否可以使用当前类/对象的类型的简写,而不必显式传递当前类/对象的名称?

例如,给出下面的示例代码:

public class SomeClass
{
    public SomeClass()
    {
        // Call some generic method that returns a string.
        string s = GenMeth<SomeClass>)();
    }
} // public class SomeClass
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉 C# 我想将当前类 (SomeClass) 的类传递给 GenMeth() 而不必显式地说SomeClass

一个说明该概念的假设和虚假示例:

string s = GenMeth<GetType(this)>();
Run Code Online (Sandbox Code Playgroud)

Ser*_*rvy 2

不,不存在这样的语法。

理论上,您可以通过反射调用该方法,从而允许您使用this.GetType(),但这会让事情变得更糟。只是...不要那样做。如果复制/粘贴代码,只需记住将通用参数更改为当前类型会容易得多。