Wednesday, August 4, 2010

When you define a generic class, you can apply restrictions to the kinds of
types that client code can use for type arguments when it instantiates your
class. If client code tries to instantiate your class by using a type that is
not allowed by a constraint, the result is a compile-time error. These
restrictions are called constraints. Constraints are specified by using the
where contextual keyword. The following
table lists the six types of constraints
Constraint Description

where T: struct

The type argument must be a value type. Any value type except
can be specified. See
Using Nullable
Types (C# Programming Guide)
for more information.

where T : class

The type argument must be a reference type; this applies also to any class,
interface, delegate, or array type.

where T : new()

The type argument must have a public parameterless constructor. When used
together with other constraints, the new()
constraint must be specified last.

where T : <base class name>

The type argument must be or derive from the specified base class.

where T : <interface name>

The type argument must be or implement the specified interface. Multiple
interface constraints can be specified. The constraining interface can also be

where T : U

The type argument supplied for T must be or derive from the argument supplied


ashwatha said...

Very good one- Ashwatha

Post a Comment