delegate的第一种用法

        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();
  }
 }
}
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值