【发布时间】:2022-01-04 20:59:23
【问题描述】:
代码示例
class Main{
Name Jack = new Name();
Jack.Speak();
}
class Name{
public string speak(){
Console.WriteLine("Hello", valuename);
}
public Name()
{
valuename = nameof(Jack);
}
}
输出我搜索的内容:
Hello Jack.
如果用户输入Name Joe = new Name();,输出将是Hello Joe.
【问题讨论】:
-
在类名中,您尝试在
public Name()中引用的变量jack超出范围 -
C# 中没有允许对象访问其变量名的机制。您可以想象,如果存在这样的行为,如果您将
Name对象传递给使用不同变量名的方法,则会导致严重问题。 -
考虑
var Jack = new Name(): var Bill = Jack;。一个对象具有属性和身份,但它不知道引用它的变量。而且,正如@Ryan 提到的,变量有范围