Not with your own custom code, in C#. From section 10.1.4 of the C# 3.0 spec:
The direct base class of a class type
must not be any of the following
types: System.Array
, System.Delegate
,
System.MulticastDelegate
, System.Enum
,
or System.ValueType
. Furthermore, a
generic class declaration cannot use
System.Attribute
as a direct or
indirect base class.
However, every time you create a delegate type, that automatically derives from MulticastDelegate
.
From ECMA-335, section 8.9.3:
While, for the most part, delegates
appear to be simply another kind of
user-defined class, they are tightly
controlled. The implementations of the
methods are provided by the VES, not
user code. The only additional members
that can be defined on delegate types
are static or instance methods.
That sounds like it's prohibiting constructors. I'd use a static method in a normal type instead, personally.