在if语句中实例化一个int

时间:2016-03-09 11:46:27

标签: c#

我希望能够将以下代码减少到更少的行,因为它使用了几个地方:

int callID = getCallIndex(roomID);
if (callID >= 0)
{
   ...

并尝试过这个

if (int callID = getCallIndex(roomID) >= 0)
{
    ...

但它给出了编译器错误。

是否可以在if()语句中实例化和设置变量?

5 个答案:

答案 0 :(得分:4)

您可以在if语句中执行赋值和比较,如下所示:

int callID;
if ((callID = getCallIndex(roomID)) >= 0)
{
}

但您仍需要在语句之外声明int callID变量。

答案 1 :(得分:1)

根据我的理解,不可能在C#中的if语句的代码中声明变量。

答案 2 :(得分:1)

?api=1 - 循环相反,if语句中的表达式是单个表达式,其值为fortrue。但是,分配会根据您的示例中的指定值false进行评估。然而,在int - 循环中,您可以创建这样的assignmenets,因为您可以包含代码块而不是单值表达式:

for

正如您所看到的,第一个参数和循环的最后一个参数也可以是多个语句。但是if语句需要一个值而不是语句。

所以这是不可能的。

答案 3 :(得分:0)

如果您不想在if中使用callID,请使用以下命令:

if (getCallIndex(roomID) >= 0)
{
    ...
}

答案 4 :(得分:0)

是的,有可能。你可以在if条件内使用赋值。但你不能在其中实例化变量。

int callID;
if (callID=getCallIndex(roomID) >= 0)
{
    //do something.
}

所以,这是不可能的。