是否可以在C#中的父类列表中找到给定的子类?

时间:2016-06-13 23:24:45

标签: c# inheritance

给定一个ClassA列表,由ClassA的几个子类填充(如ClassB或ClassC),有没有办法迭代列表并查找ClassB或ClassC的实例并访问它们的类独占方法?

2 个答案:

答案 0 :(得分:1)

当然,确实如此。代码的通常模式是

 ClassB classB = classA as ClassB;
 if (classB == null)
 {
     // do something else, probably return
 }
 classB.DoTheThingYouNeedClassBFor();

但是,作为一个旁边,这种情况有点像代码味道"。通常,如果您发现自己处于这种状况,您的设计仍有改进的余地。如果你详细说明你试图解决的问题,也许有人可以提出更好的解决方案。

答案 1 :(得分:1)

假设您有一些非同类课程的列表,您可以这样做:

html,body,.wrapper {
    height:100%;
    width:100%;
}

#rows {
    height: 30%;
    font-family: 'Poiret One', cursive;
    font-size: 24px;
    color: white;
}


.portfolio {
    height: 100%;
    background: url("https://www.topdraw.com/assets/uploads/2015/07/HiRes2.jpg");
    -webkit-background-size:;
    background-size: cover;
    background-position: center;
}

/* Portfolio Overlay Block */
#portfolio-overlay {
    background: rgb(0, 0, 0); /* fallback color*/
    background: rgba(0, 0, 0, 0.4);
    height: 100%;
    max-width:100%;
}