【发布时间】:2015-10-23 17:16:56
【问题描述】:
我可以访问一个抽象方法,该方法采用一种称为“武器”的类型。
我传入的对象有对父级的引用,但我必须做一个转换。
执行一次似乎没问题,但对于其他方法,我可能需要传递 3、4 甚至 5 个对象,这意味着我最终必须转换所有这些对象才能访问我需要的属性。
有没有办法传入转换而不是包含引用的实际对象?
类似这样的东西,我知道这不会编译:
GetRobotSystems(Weapon r=(MilitaryRobot)r.Baserobot)
这是工作代码:
protected override IEnumerable<WeaponsCollection> GetRobotSystems(Weapon robot)
{
MilitaryRobot r = (MilitaryRobot)robot.BaseRobot;
yield return r.Aromor;
yield return r.Weapons;
}
【问题讨论】:
-
我不明白你想要完成什么。如果方法需要
MilitaryRobot,为什么不相应地更改方法声明? -
我感觉问题的根本原因在于您的设计,并为您提供任何具体帮助,您需要发布至少部分类层次结构。
标签: c# c#-4.0 .net-4.0 .net-4.5