【问题标题】:Simplest way to determine if class x is derived from class y? (c#)确定类 x 是否派生自类 y 的最简单方法? (C#)
【发布时间】:2011-05-10 10:49:24
【问题描述】:

这是确定foo 是否相同或派生自T 类型的最简单方法

bool Derives<T>(object foo)
{
  return foo is T;
}

完全匹配是

bool ExactMatch<T>(object foo)
{
  return foo.GetType() == typeof(T);
}

【问题讨论】:

  • 答案是否必须考虑接口(例如,ArrayList 是从 ICollection 派生的吗?ICollection 是从 IEnumerable 派生的吗?)?是否必须考虑仿制药?如果是这样,它应该如何处理泛型类型参数(例如,List&lt;T&gt; 是从 IList&lt;T&gt; 派生的吗?List&lt;Giraffe&gt; 是从 List&lt;Animal&gt; 派生的吗?)?
  • ExactMatch 因RuntimeType 问题而无法工作
  • RuntimeType 问题如...?

标签: c# generics derivative


【解决方案1】:

我想不出更简单的方法:)

(并以“回答”格式取悦巨魔:“是”)

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 1970-01-01
    • 2011-08-25
    • 2010-09-22
    • 2023-04-04
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 2012-06-13
    相关资源
    最近更新 更多