delegate的第一种用法:类方法的入口
第一步,声明一个delegate
第二步,声明签名一致的方法
第三步,实例化一个delegate,绑定方法
第四步,通过delegate的实例调用方法
using System;
//using System.Collections.Generic;
using System.Text;
namespace simpleDelegate
{
class simpleDelegate
{
// Declares a delegate for a method that takes in an int and returns a String.
public delegate String myMethodDelegate( int myInt );
//Delegate Function myMethodDelegate(myInt As Integer) As [String] vb.net
// Defines some methods to which the delegate can point.
public class mySampleClass
{
// Defines an instance method.
public String myStringMethod ( int myInt )
{
if ( myInt > 0 )
return( "positive" );
if ( myInt < 0 )
return( "negative" );
return ( "zero" );
}
// Defines a static method.
public static String mySignMethod ( int myInt )
{
if ( myInt > 0 )
return( "+" );
if ( myInt < 0 )
return( "-" );
return ( "" );
}
}
static void Main()
{
// Creates one delegate for each method.
mySampleClass mySC = new mySampleClass();
myMethodDelegate myD1 = new myMethodDelegate(mySC.myStringMethod);
myMethodDelegate myD2 = new myMethodDelegate(mySampleClass.mySignMethod);
//Dim myD2 As New myMethodDelegate(AddressOf mySampleClass.mySignMethod) vb.net
// Invokes the delegates.
Console.WriteLine("{0} is {1}; use the sign /"{2}/".", 5, myD1(5), myD2(5));
Console.WriteLine("{0} is {1}; use the sign /"{2}/".", -3, myD1(-3), myD2(-3));
Console.WriteLine("{0} is {1}; use the sign /"{2}/".", 0, myD1(0), myD2(0));
Console.Read();
}
}
}