我希望能够将以下代码减少到更少的行,因为它使用了几个地方:
int callID = getCallIndex(roomID);
if (callID >= 0)
{
...
并尝试过这个
if (int callID = getCallIndex(roomID) >= 0)
{
...
但它给出了编译器错误。
是否可以在if()语句中实例化和设置变量?
答案 0 :(得分:4)
您可以在if语句中执行赋值和比较,如下所示:
int callID;
if ((callID = getCallIndex(roomID)) >= 0)
{
}
但您仍需要在语句之外声明int callID
变量。
答案 1 :(得分:1)
根据我的理解,不可能在C#中的if
语句的代码中声明变量。
答案 2 :(得分:1)
与?api=1
- 循环相反,if语句中的表达式是单个表达式,其值为for
或true
。但是,分配会根据您的示例中的指定值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.
}
所以,这是不可能的。