我有一个"简单"的问题,我创建了一个示例应用程序来说明.我希望b.getName()调用返回"barname",但它没有,我不知道如何让它工作.我已经在C#工作多年了,但此刻我觉得自己像个新手,因为这个后期绑定问题令我难过.
class Program
{
static void Main(string[] args)
{
bar b = new bar();
Console.WriteLine(b.getName());
Console.ReadLine();
}
}
class foo
{
string name = "fooname";
public string getName()
{
return this.name;
}
}
class bar:foo
{
string name = "barname";
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,您的name变量是私有的 - 听起来就像您想要的那样protected,因此您可以覆盖该值 - 这将起作用:
class foo
{
protected string name = "fooname";
public string getName()
{
return this.name;
}
}
class bar : foo
{
public bar()
{
name = "barname";
}
}
Run Code Online (Sandbox Code Playgroud)