【问题标题】:.NET - How to find the highest common base class from a Collection of Objects.NET - 如何从对象集合中找到最高公共基类
【发布时间】:2010-11-28 18:22:05
【问题描述】:

我有一个使用多个级别的类继承的应用程序。我想知道如果我有一个从基类派生的对象集合,例如简单的

IEnumerable<BaseClass>

如果不是 BaseClass,我如何找到集合中所有对象派生的最高通用类型?

问候,

【问题讨论】:

    标签: .net class inheritance


    【解决方案1】:
    Type baseType = null;
    
    foreach (var obj in objects)
    {
        if (baseType == null)
            baseType = obj.GetType();
        else
        {
            Type currentType = obj.GetType();
    
            while (!baseType.IsAssignableFrom(currentType))
                baseType = baseType.BaseType;
        }
    }
    

    此代码仅适用于实际继承层次结构,不适用于接口层次结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 2018-07-03
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多