Phi*_*hil 1 c# foreach casting
我有一个 Item 的基类。继承的类是Book。所以,一本书是一个物品。极好的。
现在,我有一个名为 Take() 的方法。它对所有项目执行 foreach。
它正在做...
foreach (Item item in lstItems)
Run Code Online (Sandbox Code Playgroud)
它还获取我的 Book 对象,但只是基本成员。
当然,我无法从中获取这本书的具体属性。由于并非所有项目都是书籍,因此我不想每次都将项目转换为书籍。
有没有一种通用的方法可以使用 C# 在 foreach 中获取继承的类?
小智 5
如果列表中有 A(或者不是 B 或 B 的子类的其他内容),
那么它就会因无效强制转换而中断。您可能想要:
foreach(B i in lstItems.OfType<B>()) {...}
Run Code Online (Sandbox Code Playgroud)
在 .NET 3.5 中。(顺便说一句,我假设它lstItems
本身将是非空的。)