好吧,我承认这有点奇怪……但它确实有一个合乎逻辑的目的。我在当前项目中使用 C#,并试图找到一种方法来重写派生类中的成员变量,但在基类方法中访问被重写的变量。为了让事情变得更“有趣”,如果重写的成员变量是静态的(这在下面的示例代码中没有显示),那就更好了。
这是我的示例代码:
class baseclass
{
protected string[] array = null;
public string method()
{
string str = "";
foreach (string x in this.array)
{
str += x + " ";
}
return str;
}
}
class subclass1 : baseclass
{
new string[] array = new string[]
{
"class1value1",
"class1value2",
"class1value3",
"class1value4"
};
}
class subclass2 : baseclass
{
new string[] array = new string[]
{
"class2value1",
"class2value2",
"class2value3",
"class2value4"
};
}
关于为什么这不起作用以及解决它的方法有什么想法吗?
有什么理由不能使用虚拟财产吗?这将提供您正在寻找的功能。它只是不会成为一个领域。
protected abstract string[] array { get; }
...
protected override string[] array { get { return new string[]{"...","..."}; }}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)