Is it possible to define a class in C# such that
class GenericCollection : SomeBaseCollection where T : Delegate
I couldn
As mentioned above, you cannot have Delegates and Enum as a generic constraint. System.Object and System.ValueType also cannot be used as a generic constraint.
The work around can be if you construct an appropriate call in you IL. It will work fine.
Here is a good example by Jon Skeet.
http://code.google.com/p/unconstrained-melody/
I have taken my references from Jon Skeet's book C# in Depth, 3rd edition.