ch5_2.cs

来自「《c#技术内幕代码》」· CS 代码 · 共 83 行

CS
83
字号
using System;

public delegate void PrintAnObjectDelegate( object o );

class A
{
   public A()
   {
   }
   public void Print()
   {
      Console.WriteLine("I'm an A!");
   }
}

class B
{
   public B()
   {
   }
   public void Print()
   {
      Console.WriteLine("I'm a B!");
   }
}

class C
{
   public C()
   {
   }
   public void Print()
   {
      Console.WriteLine("I'm a C!");
   }
}


class Printer
{
   
   public PrintAnObjectDelegate dele;
   
   public Printer()
   {
      dele = null;
   }
   public void DoPrint( object o )
   {
      if ( dele != null )
         dele( o );
      
   }
}

class CH5_2
{
   public static void ObjPrint( object o )
   {
      if ( o is A )
      {
         (o as A).Print();
      }
   }
   public static void Main()
   {
      Printer p = new Printer();
      PrintAnObjectDelegate pao = new
         PrintAnObjectDelegate(ObjPrint);
	 
      p.dele = pao;
      A anA = new A();
      B aB = new B();
      C aC = new C();
      
      p.DoPrint( anA );
      p.DoPrint( aB );
      p.DoPrint( aC );
   }
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?