Constraints
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
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 Nullable 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 generic. |
where T : U | The type argument supplied for T must be or derive from the argument supplied for |
1 comments:
Very good one- Ashwatha
Post a Comment