gpt4 book ai didi

c# - 为什么在for中定义的私有(private)变量与外部相同的变量冲突?

转载 作者:行者123 更新时间:2023-11-30 22:08:39 27 4
gpt4 key购买 nike

在我的心智模型中,for 中定义的计数器变量变为私有(private),因为它不能从外部访问,如下所示。

    for (int x = 0; x < 2; x++) ;
//Console.WriteLine(x); x does not exist in the current context

当我如下声明同一个变量时,我感到很困惑,

    for (int x = 0; x < 2; x++) ;
//Console.WriteLine(x); x does not exist in the current context, but why cannot I declare
//int x = 1;

为什么编译器不允许我声明一个与另一个不可访问变量同名的变量?这对我来说没有意义。 :-)

为了更容易混淆

    {
int x = 1;
}
{
int x = 2;
}

这是编译器允许的。但以下两种情况均不允许。

static void Foo()
{
int x = 1;
{ int x = 2; }
}

static void Bar()
{
{ int x = 2; }
int x = 3;
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com