调用泛型方法时是否可以使用当前类/对象的类型的简写,而不必显式传递当前类/对象的名称?
例如,给出下面的示例代码:
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)
不,不存在这样的语法。
理论上,您可以通过反射调用该方法,从而允许您使用this.GetType(),但这会让事情变得更糟。只是...不要那样做。如果复制/粘贴代码,只需记住将通用参数更改为当前类型会容易得多。