using System;
class ClasseBase {
public void MethodeBonjour() {
Console.WriteLine("Bonjour");
}
}
class B : ClasseBase { }
class C { }
class Derivée where T : ClasseBase {
T obj;
public Derivée(T o) {
obj = o;
}
public void saluer() {
obj.MethodeBonjour();
}
}
class BaseClassConstraintDemo {
public static void Main() {
ClasseBase a = new ClasseBase();
B b = new B();
C c = new C();
Derivée t1 = new Derivée(a);
t1.saluer();
Derivée t2 = new Derivée(b);
t2.saluer();
}
}