如果我重置变量有什么区别?例如
public static int Digits(int f)
{
int result = 0;
while (f != 0)
{
result += f % 10;
f /= 10;
}
return result;
}
这里int result = 0
我重置了变量,为什么我需要这样做?如果我不这样做会发生什么?
谢谢。
答案 0 :(得分:1)
您需要这样做,因为C#编译器在您允许您从变量读取之前需要您。如果你不这样做,那么编译器会产生错误而不是可执行程序。
编译器需要这个的原因源于这个变量在使用时必须具有某些值的事实(也就是说,保存此变量值的内存位置由一个数字组成)必须具有某些值的字节数),因此选择不是在"初始化变量之间&#34 ;;知道变量具有什么价值之间的关系。
由于使用具有完全未知且不可预测的值的变量进行计算通常不会产生有用的结果,因此编译器会强制您明确以防止意外错误。编译器不需要这样做的语言(例如C和C ++)因允许程序员编写这种类型的错误而臭名昭着。
值得注意的是,编译器可以通过其他方式实现相同的目标,例如:通过隐式地将值初始化为数据类型的默认值(对于整数,这将是零) - 实际上,它确实与类字段一起执行此操作。决定取决于语言设计者的推理。