静态方法中的GetType



可能重复:
.NET:在其静态方法中确定"this"类的类型

如何从static方法访问GetType()

我有这个抽象的基类

abstract class MyBase
{
   public static void MyMethod()
   {
      var myActualType = GetType(); // this is an instance method
      doSomethingWith(myActualType);
   }
}

以及该类的实现。(我可以有很多实现。(

class MyImplementation : MyBase 
{
    // stuff
}

如何使myActualType成为typeof(MyImplementation)

静态方法中的"类型"始终是特定类型,因为不存在虚拟静态方法。

在你的情况下,这意味着你可以写:

 var myActualType = typeof(MyBase);

由于MyMethod的"类型"是静态的,因此总是MyBase的静态方法。

这个怎么样?

abstract class MyBase<T>
{
   public static void MyMethod()
   {
      var myActualType = typeof(T);
      doSomethingWith(myActualType);
   }
}

class MyImplementation : MyBase<MyImplementation>
{
    // stuff
}

这是我使用的模式。

abstract class MyBase
{
   public static void MyMethod(Type type)
   {
      doSomethingWith(type);
   }
}

相关内容

  • 没有找到相关文章

最新更新