c#从父级访问子类

时间:2016-01-10 15:52:03

标签: c# list class

我有两节课。珠宝是基础,而环继承自它。

var props = $(".hello").attr("style").split(";");

props.push.apply(props, 
                 $("style").text()
                 .replace(/\n|\s+/g, "")
                 .match(/\.hello\{.*\}/)[0]
                 .split(/\.hello\{|\}|;/)
                 .filter(Boolean)
                );

console.log(props, props.length);

.hello {
  background: #ccc;
}

现在在主要我创建了珠宝列表,在该列表中我添加了Ring对象。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div class="hello" style="height:40px; width:60px; display:inline-block">something</div>

现在调试时我可以从珠宝列表中访问戒指对象。我能从代码中做到吗?我认为应该这样做,但这不起作用。

appspot.com

1 个答案:

答案 0 :(得分:4)

你需要施放它,例如:

<div id="item-18995"">
<div id="item-18995-view">
<header>
<h4>
<h5>
<a href="http//www.example.com">Photo</a>
</h5>
</header>

var myRing = (Ring)jewellery[0];

var maybeRing = jewellery[0] as Ring;
if (maybeRing != null)
{
 // do stuff
}

对于多种类型,您可以

if (jewellery[0] is Ring)
{
   // Cast and do stuff
}

有关安全施法的信息,请参阅MSDN

根据您的目的,您可以使用Linq按类型进行过滤:

假设:

if (jewellery[0] is Ring)
{
   // Cast and do stuff
}
else if(jewllery[0] is Necklace)
{
  // and so on
}

然后:

List<Jewellery> things = new List<Jewllery>();

可以:

public IList<T> GetJewellery<T>(this jewellery) where T : Jewellery
{
    return jewellery.OfType<T>().ToList();
}