A base class constraint : Generic Constraint « Generics « C# / C Sharp






A base class constraint

A base class constraint

using System;

class MyBase {
  public void hello() {
    Console.WriteLine("Hello");
  }
}

class B : MyBase { }

class C { }

class Test<T> where T : MyBase {
  T obj;

  public Test(T o) {
    obj = o;
  }

  public void sayHello() {
    obj.hello();
  }
}

class BaseClassConstraintDemo {
  public static void Main() {
    MyBase a = new MyBase();
    B b = new B();
    C c = new C();

    Test<MyBase> t1 = new Test<MyBase>(a);

    t1.sayHello();

    Test<B> t2 = new Test<B>(b);

    t2.sayHello();

    // The following is invalid because
    // C does not inherit MyBase.
    // Test<C> t3 = new Test<C>(c); // Error!
  }
}


           
       








Related examples in the same category

1.There are five types of constraints:
2.Combination of Overriding Generic Methods
3.Use an interface constraintUse an interface constraint
4.A new() constructor constraint
5.Reference Type Constraint: A reference type constraint restricts a type parameter to a reference type.
6.Demonstrate a reference constraint
7.Demonstrate a value type constraint
8.A type parameter can be used as a constraintA type parameter can be used as a constraint
9.Reference Type ConstraintReference Type Constraint
10.Default Constructor ConstraintDefault Constructor Constraint
11.Derivation Constraint
12.constructor constraint