[Mono-devel-list] inheriting from System.Delegate - how?
Ben Maurer
05mauben at hawken.edu
Fri Feb 27 12:13:52 EST 2004
Hello,
You are not allowed to inherit from Sys.Dele directly. You must use the delegate construct in C#.
If you need to dynamically construct your delegate type, you must do that by using System.Reflection.Emit, which *is* able to emit delegates directly (that is what mcs does).
The document you cited from msdn is actually a statement of Microsoft's behavior. There is nobody restricting you from writing a compiler without this requirement. However, the fact is, most languages do not do it.
-- Ben
>>> David Jung <jungdl at ornl.gov> 02/27/04 11:42 AM >>>
I'm writing an interpreter for a .NET hosted language that includes a
kind of
function-pointer like construct that I want to expose as delegates to .NET.
According to MS's documentation for the System.Delegate class:
"However, only the system and compilers can derive explicitly from the
*Delegate* class or from the MulticastDelegate
<http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemmulticastdelegateclasstopic.asp>
class."
Any idea how exactly? When I try it I get an error from mcs 0.30:
error CS0644: `bilab.Func' cannot inherit from special class
`System.Delegate'
Is there some switch/define/attribute or something that will allow me to
do it?
How does mcs do it? (or doesn't it).
Any help appreciated. Thanks,
-David.
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list
More information about the Mono-devel-list
mailing list