gpt4 book ai didi

c# - 具有相同名称的类和方法变量的行为

转载 作者:行者123 更新时间:2023-11-30 20:01:10 25 4
gpt4 key购买 nike

早些时候我遇到了一个问题,我发现 C# 有一些奇怪的行为。

这会抛出一个错误:

 public class MyClass
{
public int MyMethod()
{
for(int x = 0; x < 1; x++)
{
for(int x = 0; x < 1; x++)
{
}
}
}
}

但这不会:

public class MyClass
{
public int x = 0;
public int MyMethod()
{
for(int x = 0; x < 1; x++)
{
}
}
}

相反,当 for 循环结束时,x 将被设置回 0。如果您有一个 int x 和一个 bool x,这也将起作用。

为什么会这样?

最佳答案

在第一种情况下,您在同一范围内定义同一变量两次,这是一个错误。

在第二种情况下,您在循环范围内定义了一个局部变量,它将在该范围内隐藏类成员 x。在该范围之外,x 将引用类成员,但在其内部将引用循环迭代变量。

关于c# - 具有相同名称的类和方法变量的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412848/

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