gpt4 book ai didi

c# - 字段和局部变量的范围冲突

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:27 25 4
gpt4 key购买 nike

请参阅下面的代码片段

class scopes
{
static int j=20;
Console.WriteLine(j);
public static void Main()
{
int j=30;
Console.WriteLine(j);
return;
}
}

以上代码支持变量隐藏
看下面代码

public static int Main()
{
int j = 20;
for (int i=0; i < 10; i++)
{
int j = 30; //can't do this
Console.WriteLine(j + i);
}
return 0;
}

此处不支持上述代码变量隐藏。

这背后的原因是什么?

最佳答案

在第一种情况下,至少有一个定义的方法来消除两者之间的歧义,即 this. 前缀 - 在方法内部,this.j 是字段,其中-as j 是成员。至于为什么支持:推测,但可能这样向类添加一个字段(在 partial 类的情况下可能位于不同的代码文件中)不会' 导致随机方法开始抛出编译器错误。注意方法中j的in在添加字段j前后的含义是一样的。

在第二种情况下,这不是问题:添加局部变量只会影响单个局部方法,并且没有消歧语法(即我们指的是哪个 j),也没有风险意外损坏来自不相关的代码

关于c# - 字段和局部变量的范围冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13399185/

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