你好,我在C#上是个菜鸟,我不明白为什么说即使我正在使用它也从未使用过变量,这很清楚。
它是否不执行if陈述?
public void SetStellplatz(Fahrzeuge Anmeldung)
{
bool is_pkw = false;
bool is_motorrad = false;
bool is_lkw = false;
int stellplatznummer;
if(Anmeldung is PKW)
{
is_pkw = true;
stellplatznummer = GetStellplatz(1, 199);
} else if(Anmeldung is Motorrad)
{
is_motorrad = true;
stellplatznummer = GetStellplatz(200, 399);
} else if (Anmeldung is LKW)
{
is_lkw = true;
stellplatznummer = GetStellplatz(400, 599);
}
}
答案 0 :(得分:1)
您的if语句缺少else子句,因此不能保证在所有情况下都分配变量stellplatznummer
。您可以通过包括设置变量值的else语句来解决它,或者在定义变量时将其初始化为默认值。
答案 1 :(得分:0)
您的方法没有执行任何操作,因为所有变量都具有局部作用域。您的方法等效于:
public void SetStellplatz(Fahrzeuge Anmeldung)
{
if (Anmeldung is PKW)
GetStellplatz(1, 199);
else if (Anmeldung is Motorrad)
GetStellplatz(200, 399);
else if (Anmeldung is LKW)
GetStellplatz(400, 599);
}
似乎其中一些变量应该是类字段或可能是属性。
// Private Field
private bool is_pkw = false;
// Public Property
public bool is_motorrad { get; set; } = false;
public void SetStellplatz(Fahrzeuge Anmeldung)
{
// if some condition
is_pkw = true;
// if some other condition
is_motorrad = true;
}
答案 2 :(得分:0)
您可以在该方法中创建变量stellplatznummer,该方法完成后,该变量将被销毁,因为该变量仅用于该方法,并且您永远不会返回它。
尝试说出您想使用哪种方法。
public int stellplatznummer;
public bool is_pkw = false;
public bool is_motorrad = false;
public bool is_lkw = false;
public void SetStellplatz(Fahrzeuge Anmeldung)
{
if(Anmeldung is PKW)
{
is_pkw = true;
stellplatznummer = GetStellplatz(1, 199);
} else if(Anmeldung is Motorrad)
{
is_motorrad = true;
stellplatznummer = GetStellplatz(200, 399);
} else if (Anmeldung is LKW)
{
is_lkw = true;
stellplatznummer = GetStellplatz(400, 599);
}
}
如果SetStellplatz方法将stellplatznummer设置为数字,则要在哪里使用它。您将如何使用该号码。并且请给出,因为Anmeldung的代码可能会有所帮助。
此外,我不理解您的语言,但有可能您不需要使用SetStellplatz的方法。