はのは、C#で、このクラスを想定してみましょう:のC#:リストで継承問題<T>
public class LimitedList<T> : List<T>
{
private int _maxitems = 500;
public void Add(T value) /* Adding a new Value to the buffer */
{
base.Add(value);
TrimData(); /* Delete old data if lenght too long */
}
private void TrimData()
{
int num = Math.Max(0, base.Count - _maxitems);
base.RemoveRange(0, num);
}
}
コンパイラは私にライン "公共ボイドは追加(T値)" で、この警告を与える:
警告CS0108: 'System.LimitedList.Add(T)'は継承メンバ 'System.Collections.Generic.List.Add(T)'を非表示にします。隠れが意図されていた場合は、新しいキーワードを使用してください。
この警告を回避するにはどうすればよいですか?あなたが宣言に「新」を追加することによって、この警告を回避することができ、あなたの助け
継承を使用する場合でも、インターフェイスの残りの動作をオーバーライドすることを忘れないでください。それ以外の場合は、コレクションではなく、コレクションを持つ必要があります。 –