【发布时间】:2011-12-08 22:36:34
【问题描述】:
- 我有一个继承自 B 的 A 类。
- A 作为我想从 B 修改的一些只读属性
- 用 new 隐藏这些属性不是一个合适的选择,因为基类有一些使用自己的属性的函数...
- 无法使用 override 关键字,因为属性未标记为抽象、虚拟或覆盖
所以我想知道是否可以从继承的类 (B) 中完全重新创建对象的实际实例来访问那些只读属性。
例如,为了更好地解释,对于继承 Tuple 的类,如果可能,我会这样做:
public new T3 Item3
{
get { return item3; }
set
{
item3 = value;
base = new Tuple<T1, T2, T3>(Item1, Item2, Item3); // Not valid
}
}
我不知道该怎么做?
【问题讨论】:
-
您发布的越多,您就越不想要
Tuple<>,而您似乎越想要一个模拟您的域的真实类。 -
也许我误解了元组是什么,但我只想要一个与元组具有相同行为的类,除了我希望属性是可变的。我发布这个新问题是因为我想到了一个更简单的解决方案,而不是实现我谈到的接口
-
我认为,如果您可以创建一个 short 问题来描述您尝试建模的问题,而不是一些关于做某事的机械问题,那么您会得到更好的答案特定(且看似尴尬)的方式
标签: c# class inheritance properties overriding