如果可能,我需要使用一些代码,其中' if'在' else'之后如下:
if (Car1.isEmpty)
{
Do stuff
}
else
{
Car1.EmptyOut();
}
else if (Car2.isEmpty)
{
Do stuff
}
else
{
Car2.EmptyOut()
}
等等。这需要多次完成。基本上如果Car1不可用(因为它不是空的),需要使用Car2并且需要将Car1送回家以便清空。
我想知道它是否会进入下一个'否则 - 如果'但是声明。
答案 0 :(得分:4)
也许你正在寻找“当第一辆车不能免费使用第二辆车时”?
if (Car1.isEmpty)
{
Do stuff
}
else
{
Car1.EmptyOut();
if (Car2.isEmpty)
{
Do stuff
}
else
{
Car2.EmptyOut()
}
}
请注意,如果你有多个“汽车”使用某种类型的列表,LINQ查询可能更有意义。即
var firstEmpty = cars.Where(car => car.IsEmpty).FirstOrDefault();
if (firstEmpty != null)
{
// use empty car
}
else
{
// no empty cars - recover and maybe retry...
}
答案 1 :(得分:3)
不,这是不可能的。如果你需要执行这样的动作,那么使用循环
是个好主意var carList = new List<car>();
for(var car in carList ) {
if(car.isEmpty){
//Do stuff
} else {
car.emptyOut();
}
}
如果您不想使用循环,无论出于何种原因,您可以简单地将很多if语句放在一起
if(car1.isEmpty) {
//Do stuff
} else {
car1.emptyOut();
}
if(car2.isEmpty) {
//Do stuff
} else {
car2.emptyOut();
}
答案 2 :(得分:1)
没有。这是不允许的。这样做:
if (Car1.isEmpty)
{
// Do stuff.
}
else
{
Car1.EmptyOut();
if (Car2.isEmpty)
{
// Do stuff.
}
else
{
Car2.EmptyOut();
}
}
由于你有很多车,如果你可以枚举他们的变量名,那么你可以使用reflection。例如:
using System;
class Car
{
public Car(string name)
{
Name = name;
}
public bool isEmpty { get; set; }
public string Name { get; set; }
public void EmptyOut() { }
}
static class Program
{
public static Car Car0 = new Car("Car0");
public static Car Car1 = new Car("Car1");
public static Car Car2 = new Car("Car2");
public static Car Car3 = new Car("Car3");
public static Car Car4 = new Car("Car4");
public static Car Car5 = new Car("Car5");
public static Car Car6 = new Car("Car6");
public static Car Car7 = new Car("Car7");
public static Car Car8 = new Car("Car8");
public static Car Car9 = new Car("Car9");
static void Main()
{
var type = typeof(Program);
for (int i = 0; i <= 9; i++)
{
var field = type.GetField("Car" + i);
var temp = (Car)field.GetValue(null);
if (temp.isEmpty)
{
// Do stuff.
break;
}
else
{
temp.EmptyOut();
}
}
}
}
答案 3 :(得分:1)
你是说这个吗?
if (Car1.isEmpty)
{
//Do stuff
}
else
{
Car1.EmptyOut();
if (Car2.isEmpty)
{
//Do stuff
}
else
{
Car2.EmptyOut()
}
}
答案 4 :(得分:1)
public bool Process( IEnumerable<Car> cars , Action<Car> process )
{
bool success = false ;
foreach( Car car in cars )
{
if ( car.IsEmpty )
{
process(car) ;
success = true ;
break ;
}
car.EmptyOut() ;
}
return success ;
}
答案 5 :(得分:0)
这在C#语法中是不可能的,设法使用Switch语句或嵌套的If Else语句