C# 获取类类型?
给定C# 获取类类型?,c#,reflection,.net-4.0,C#,Reflection,.net 4.0,给定 B.Foo()是否可以在.NET4中获取typeof(B)?请注意,Foo是静态的。A.Foo()和B.Foo()之间没有区别。在这两种情况下,编译器都会调用a.Foo()。因此,不,没有办法检测Foo是否被称为A.Foo()或B.Foo(),不幸的是,这是不可能的 一种替代方法是将A设置为通用,如下所示: public class A { public static void Foo() { // get typeof(B) } } public
B.Foo()
是否可以在.NET4中获取typeof(B)
?请注意,Foo
是静态的。A.Foo()
和B.Foo()
之间没有区别。在这两种情况下,编译器都会调用a.Foo()
。因此,不,没有办法检测Foo
是否被称为A.Foo()
或B.Foo()
,不幸的是,这是不可能的
一种替代方法是将A
设置为通用,如下所示:
public class A
{
public static void Foo()
{
// get typeof(B)
}
}
public class B : A
{
}
这就是我最终发现的解决方案:)(第一个)。很好用!谢谢
public class A<T>
{
public static void Foo()
{
// use typeof(T)
}
}
public class B : A<B>
{
}
public class A
{
protected static void Foo<T>()
{
// use typeof(T)
}
}
public class B : A
{
public static void Foo()
{
A.Foo<B>();
}
}