oo设计基础在这里...
编辑:在第一次回答后澄清 - 我不是在问如何解决这个问题,而是从表面上看设计是否看起来很古怪。出于社会考虑,我不想指出原始代码。
我正在使用一些具有虚拟方法的代码,该方法除了修改类的私有成员变量之外什么都不做。我只想更改该修改的细节。这是我想要改变的唯一行为,但我不能引用私有成员,所以我不能只覆盖该方法。从表面上看,原作者的设计是错误的/奇怪的,还是说这没有足够的信息?
public class X
{
private List<string> InterestingThings = new List<string>();
public virtual void MethodIWantToOverride(string rawData)
{
string fixedData = ...
// do some fancy stuff to clean up data that I want to come thru 'dirty'
InterestingThings.Add(fixedData);
}
}