[My last post seems to have been corrupted by LISTSERV. Reposting here,
trying to have better luck... List admins??]
Mont,
Generally speaking, you always have to use a method delegate to pass a
"method" as a parameter to a function. To make the whole syntax easier,
the C# 2.0 compiler can infer the delegate type you are using in an
expression from the called method signature, in addition to the one of
the method you are passing as a parameter. Here's a short example which
I hope would make it clearer:
// A simple delegate
delegate void TestDelegate(int a);
// A simple method that would match TestDelegate signature
void MethodToPass(int firstParameter)
{
}
// A method that would accept a method with a TestDelegate signature as
its parameter
void TestCompilerInference(TestDelegate myMethod)
{
}
Now suppose you have to call the aforementioned TestCompilerInference()
method, passing a delegate to the MethodToPass() method. You have two
possible solutions for this one; the standard method:
TestCompilerInference(new TestDelegate(MethodToPass));
And the following one:
TestCompilerInference(MethodToPass);
Note that both ways will produce the same IL code; in the second case
the C# 2.0 compiler will infer the right delegate type from the
signatures of the methods you are using.
Hope this helps.
--
Efran Cobisi
http://www.cobisi.com
===================================
This list is hosted by DevelopMentorĀ® http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com