【发布时间】:2021-10-30 08:04:43
【问题描述】:
我对声明变量,然后在代码块(例如 if 语句)中初始化/分配这些变量,然后在我的其余代码中使用该变量感到有些困惑。
如果“result”被声明且未事先初始化,则下面的示例无法将 num1 + num2 的结果分配给 if 语句中的“result”。
int num1 = 1;
int num2 = 2;
int result; //declared
if (num1 == 1)
{
result = num1 + num2;
}
Console.WriteLine(result); //Use of unassigned local variable "result"
但是,事先声明和初始化“result”会成功更新 if 语句中的“result”值。
int num1 = 1;
int num2 = 2;
int result = 0; //declared and initialized
if (num1 == 1)
{
result = num1 + num2;
}
Console.WriteLine(result); //3
此外,如果我将 if 语句中的条件简单地更改为“true”而不是“num1 == 1”,那么前面的两个示例都可以完美运行。
谁能给我解释一下?
【问题讨论】:
-
这篇文章可以清楚地回答你的问题 IMO stackoverflow.com/a/8933935/2946329
-
好的,谢谢!似乎 C# 编译器不知道 if 语句中的代码是否会执行,所以它必须分配它们的默认值。
标签: c# if-statement initialization declaration