【发布时间】:2012-01-11 14:50:11
【问题描述】:
只是出于好奇:如果我有嵌套范围,就像在这个示例 C++ 代码中一样
using namespace std;
int v = 1; // global
int main (void)
{
int v = 2; // local
{
int v = 3; // within subscope
cout << "subscope: " << v << endl;
// cout << "local: " << v << endl;
cout << "global: " << ::v << endl;
}
cout << "local: " << v << endl;
cout << "global: " << ::v << endl;
}
有没有办法从“中间”范围(既不是全局也不是本地)访问具有值2 的变量v?
【问题讨论】:
-
无论如何这在 C# 中是无效的。
-
我会说这是一个相当糟糕的做法,在每个新范围内使用相同的变量名似乎不是一个好主意。
-
没有。如果您需要访问它,请重命名变量。
-
为了补充 Jon 的观点,一个本地 v 是合法的,但是
main内的 second v 本地会产生问题,因为另一个 v 已经在“父级或current" 范围,正如编译器消息所说的那样。 -
@JonSkeet 好的,这不能用 C# 编译,我不知道。谢谢!