实施例:Scope变量与输出参数
我有以下代码块:
if (!int.TryParse("123", out var parsedNumber))
{
return;
}
Console.WriteLine(parsedNumber);
在控制台的输出是:123
问题:
那怎么可能呢,那行Console.WriteLine(parsedNumber);
知道parsedNumber
?
据我了解,parsedNumber
应该只在if-block
中可用,应该不是吗?
如果我试试这个:
foreach (var data in dataList)
{
data += "something";
}
Console.WriteLine(data);
Console.WriteLine(data);
找不到data
。
我认为,解决方案是out参数,但我不确定。有人可以解释这个吗?
我觉得他/她问的是,为什么会出如果(){},我们仍然可以访问到parsedNumber – EntryLeveDeveloper
@CodeContributor:是的,这也是有道理的,为我的答案添加了一个编辑来涵盖 – eugenioy
谢谢你的好解释。 –