我有一个包含原始属性和自定义属性的类:
public class Version_1
{
public string Name { get; set; }
public int Age { get; set; }
public WeirdDad Weird { get; set; }
public MysteriousDad Mysterious { get; set; }
}
将来我想用一个 int 属性和我的自定义对象之一的自定义来扩展这个类,这样:
public class Version_2 : Version_1
{
public string IdentityCode { get; set; }
public WeirdChild Weird { get; set; }
}
在 Version_2 类中,WeirdDad 对象的外观已被其子对象 WeirdChild 替换,因此我想替换它。 相反,在此示例中,我将在 Version_2 类中同时拥有 WeirdDad 和 WeirdChild。
你会如何实现这个例子?
最佳答案
我相信你想做的是所谓的方法隐藏。您的 Version_2 类应如下所示:
public class Version_2 : Version_1
{
public string IdentityCode { get; set; }
public new WeirdChild Weird { get; set; }
}
当您想从 Version_1 访问“Weird”属性时,您必须调用 base.Weird
但请注意,不推荐这样做,而且会产生代码味道。
关于c# - 替换继承中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33810815/