Liskov in .net
Geplaatst: do 09 jul 2009, 22:56
Als ik volgende code schrijf
Krijg ik volgende error door de compiler:
Maar eigenlijk wil ik de methode niet verbergen.
Volgens het Liskov principe mag je retourneertype enger zijn van een overgeerfde methode dan van de Generalisatie. Override gaat niet, wat doe ik verkeerd. indien ik hide, bestaat de methode van ICloneable simpelweg niet meer op ICloneable<T> gebied.
Code: Selecteer alles
public interface ICloneable <T> : System.ICloneable {
T Clone();
}
Krijg ik volgende error door de compiler:
Code: Selecteer alles
warning CS0108: ICloneable<T>.Clone() Hides inherited member System.ICloneable.Clone(). Use the new keyword if hiding was intended.
Volgens het Liskov principe mag je retourneertype enger zijn van een overgeerfde methode dan van de Generalisatie. Override gaat niet, wat doe ik verkeerd. indien ik hide, bestaat de methode van ICloneable simpelweg niet meer op ICloneable<T> gebied.