这就是我想要做的:
abstract class BaseAnimal;
class cat : BaseAnimal;
class dog : BaseAnimal;
var allAnimals = new list<BaseAnimal>();
foreach (var someVar in allVars)
{
var myAnimal = new BaseAnimal();
if (someVar == true)
{
myAnimal = new cat();
}
else
{
myAnimal = new dog();
}
/* do other things with myAnimal var */
allAnimals.add(myAnimal);
}
有没有办法做这样的事情,还是我必须在每个 IF 语句中初始化变量,然后复制其他东西/把它放在一个函数中并调用它两次?