子范围中的变量阻止在父级中定义变量

时间:2016-08-19 08:22:32

标签: c# language-design

今天我发现了的一个“功能”:

  

错误CS0136:无法在此范围内声明名为foo的局部变量,因为它会为foo赋予不同的含义,child已在if (false) { int foo = 42; } int foo = 1337; 范围内用于表示某些内容其他

可以通过尝试编译此代码段来简单地重现:

foo

为什么我不能在父作用域中定义foo?子范围中的for index, row in df.iterrows(): if df.at[row, index] == 'something': df.at[row, index] = df.at[row, index] + 'add a string' else: df.at[row, index] = df.at[row, index] + 'add a value' 在父范围内不可见,也不会被分配,因此它在任何适当的语言中都是绝对合法的。我错过了什么?这背后的原因是什么?

0 个答案:

没有答案