5 c# overriding
好的,所以我承认这是有点棘手......但它确实有逻辑作用.我正在使用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"
};
}
Run Code Online (Sandbox Code Playgroud)
有什么想法,为什么这不起作用,以及解决它的方法?
你有什么理由不能使用虚拟财产吗?这将提供您正在寻找的功能.它不会是一个领域.
protected abstract string[] array { get; }
Run Code Online (Sandbox Code Playgroud)
...
protected override string[] array { get { return new string[]{"...","..."}; }}
Run Code Online (Sandbox Code Playgroud)