我有一个函数可以返回类实例。这里是:
public class Warrior{
private Type GetSpec()
{
if ((WarriorSpecs)charData.CharacterSpec == WarriorSpecs.Barbarian)
{
return new Barbarian(charData).GetType();
}
if ((WarriorSpecs)charData.CharacterSpec == WarriorSpecs.Guardian)
{
return new Guardian(charData).GetType();
}
if ((WarriorSpecs)charData.CharacterSpec == WarriorSpecs.Knight)
{
return new Knight(charData).GetType();
}
return this.GetType();
}
}
所有这些类Barbarian
,Guardian
,Knight
是类的子类Warrior
。
我的问题是为什么我不能执行以下操作:
public void FunctionInWarriorClass(){
GetSpec.AnotherVoidInWarriorClass();
}
我想要的只是GetSpec
返回任何作为子类的类的实例,然后调用在Warrior
类中声明的函数。这甚至可能吗?
那是因为 GetSpec() 返回一个 Type 对象而不是一个 Warrior 子类。
试试这个:
private Warrior GetSpec()
{
if ((WarriorSpecs)charData.CharacterSpec == WarriorSpecs.Barbarian)
{
return new Barbarian(charData);
}
if ((WarriorSpecs)charData.CharacterSpec == WarriorSpecs.Guardian)
{
return new Guardian(charData);
}
if ((WarriorSpecs)charData.CharacterSpec == WarriorSpecs.Knight)
{
return new Knight(charData);
}
return this;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句