在C#静态方法中是否有一种方法可以引用定义方法的Type?
在实例方法中,您可以通过以下方式确定类型:
public void Foo()
{
Type type = this.GetType();
}
Run Code Online (Sandbox Code Playgroud)
它在静态方法中会是什么样子?
public static void Bar()
{
Type type = ....?
}
Run Code Online (Sandbox Code Playgroud)
更新:对不起,需要澄清:我知道这个typeof(...)功能.我正在寻找一个关键字或代码,它给我类型而不显式引用类名.
更新:除了开发者艺术的答案,这正是我正在寻找的,有一个更简单的方法吗?
小智 23
干得好:
public static void Bar()
{
Type type = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType;
}
Run Code Online (Sandbox Code Playgroud)
编辑:更新以更正错误 - DeclaringType是一个属性.
m0s*_*0sa 13
public class Foo {
public static void Bar() {
Type type = typeof(Foo);
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用堆栈跟踪
public class Foo {
public static void Bar() {
Type type = new StackTrace().GetFrame(0).GetMethod().DeclaringType;
}
}
Run Code Online (Sandbox Code Playgroud)