为什么不能在嵌套的本地范围中声明重复的变量名?
基于最近的问题,我不明白所提供的答案。似乎您应该能够执行这样的操作,因为它们的范围不会重叠
static void Main()
{
{
int i;
}
int i;
}
此代码无法编译,并出现以下错误:
不能在此范围内声明名为“ i”的局部变量,因为它将赋予“ i”不同的含义,“ i”已在“子”范围中用于表示其他内容
-
我不认为任何的答案至今已 相当 得到了规范的关键线。
从8.5.1节开始:
在 local-variable-declaration中声明 的局部变量的范围是 声明 所在 的块 。在文本位置引用局部变量的
局部变量声明 符之前的 局部变量 是错误的。在局部变量的范围内,声明另一个具有相同名称的局部变量或常量是编译时错误。(强调我的。)
换句话说,“较晚”变量的范围包括声明 之前 的块的一部分,即它包括包含“较早”变量的“内部”块。
您不能在比其声明更早的位置 引用 后面的变量-但它仍在范围内。
-
为什么在Java中,方法外的变量会有重复的变量名?
2021-01-29 关注 0 浏览104 1答案
-
为什么不能在if语句中声明变量?
2021-01-30 关注 0 浏览94 1答案
-
为什么不能在 switch 语句中声明变量?
2022-03-22 关注 0 浏览83 1答案
-
为什么不能在osx中本地安装docker?
2021-02-01 关注 0 浏览102 1答案
-
在C#中,变量名前的@符号是什么意思?[重复]
2021-02-02 关注 0 浏览109 1答案
-
为什么变量名通常以字母“m”开头?
2022-05-26 关注 0 浏览14 1答案
-
javascript变量名周围的{花括号}是什么意思[重复]
2022-07-28 关注 0 浏览17 1答案
-
C#中静态变量的用途是什么?什么时候使用?为什么我不能在方法内部声明静态变量?
2021-02-02 关注 0 浏览189 1答案
-
下划线_作为Python中的变量名[重复]
2021-01-29 关注 0 浏览64 1答案
-
不使用变量名即可打印嵌套的JSON
2021-01-31 关注 0 浏览89 1答案