首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态GetType法

静态GetType法
EN

Stack Overflow用户
提问于 2011-10-20 17:20:16
回答 3查看 52.8K关注 0票数 51

可能重复:

.NET: Determine the type of “this” class in its static method

如何使GetType()可以从static方法访问?

我有一个抽象的基类

代码语言:javascript
复制
abstract class MyBase
{
   public static void MyMethod()
   {
      var myActualType = GetType(); // this is an instance method
      doSomethingWith(myActualType);
   }
}

以及那个类的实现。(我可以有许多实现。)

代码语言:javascript
复制
class MyImplementation : MyBase 
{
    // stuff
}

我怎样才能让myActualType成为typeof(MyImplementation)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-20 00:46:54

这就是我所用的模式。

代码语言:javascript
复制
abstract class MyBase
{
   public static void MyMethod(Type type)
   {
      doSomethingWith(type);
   }
}
票数 3
EN

Stack Overflow用户

发布于 2011-10-20 17:25:00

静态方法中的“类型”总是特定的类型,因为不存在虚拟静态方法。

在你的例子中,这意味着你只需要写:

代码语言:javascript
复制
 var myActualType = typeof(MyBase);

因为MyMethod的“类型”是静态的,所以始终是MyBase的静态方法。

票数 59
EN

Stack Overflow用户

发布于 2011-10-20 17:28:50

那这个呢?

代码语言:javascript
复制
abstract class MyBase<T>
{
   public static void MyMethod()
   {
      var myActualType = typeof(T);
      doSomethingWith(myActualType);
   }
}


class MyImplementation : MyBase<MyImplementation>
{
    // stuff
}
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7839691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档