是否可以将引用传递给另一种类型的通用对象?

时间:2014-04-19 09:04:49

标签: c#

我有一个方法,我想接受引用特定对象:

    public static void Death(ref Animal unit)
{
...
}

然后我有:

object target

可以是动物和其他东西的通用对象。 如果它是一个动物我想将目标投射到动物然后将该参考传递给我的死亡方法,但我无法弄清楚如何做...

2 个答案:

答案 0 :(得分:1)

Animal a = target as Animal;
if(a != null)
{
    Death(ref a);
}

编辑:如果您要修改target中的Death,唯一的方法是在那里办理检查:

public static void Death(ref object unit)
{
    Animal a = unit as Animal;
    if(a != null)
    {
        //assign unit
    }
}

答案 1 :(得分:1)

如果您的意思是更改参数参数不会影响target,您可以像这样手动更新。

Animal animal = target as Animal;
if(animal != null)
{
    Death(ref animal);
    target = animal;//Update it manually to target
}