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);
}
}