ConsoleApplication1
{
    public delegate void BoiledEventHander(object sender,TemperEventArgs e);
    
public class TemperEventArgs:EventArgs
    {
        
public readonly int temperature;
        
public TemperEventArgs(int temp)
        {
            
this.temperature = temp;
        }
    }
    
public class Heater
    {
        
private string factory;
        
private DateTime madeTime;
        
private TemperEventArgs temper;
        
public DateTime MadeTime
        {
            
get
            {
                
return madeTime;
            }
            
set
            {
                madeTime 
= value;
            }
        }
        
public string Factory
        {
            
get
            {
                
return factory;
            }
            
set
            {
                factory 
= value;
            }
        }
        
public event BoiledEventHander Boiled;
        
public void BoidWater()
        {
            
for (int i = 0; i < 100; i++)
            {
                
if (i >= 95)
                {
                    TemperEventArgs e 
= new TemperEventArgs(i);
                    temper 
= e;
                    OnBoided();
                }
            }
        }
        
public void OnBoided()
        {
            
if (Boiled!=null)
            {
                Boiled(
this,temper);
            }
        }
    }
    
public class Alarm
    {
        
public void MakeAlert(object sender, TemperEventArgs e)
        {
            Heater myheater 
= (Heater)sender;
            Console.WriteLine(
"the factory is{0},made by{1},the temperature is{2}",myheater.Factory,myheater.MadeTime,e.temperature);
        }
    }
    
public class Display
    {
        
static public void MakeDisplay(object sender, TemperEventArgs e)
        {
            Heater myheater 
= (Heater)sender;
            Console.WriteLine(
"my{0}madeby{1}and the temperature is{2}",myheater.Factory,myheater.MadeTime,e.temperature);
        }
    }
    
class Program
    {
        
static void Main(string[] args)
        {
            Heater myheater 
= new Heater();
            Alarm myalarm 
= new Alarm();
            myheater.Boiled 
+= myalarm.MakeAlert;
            myheater.Boiled 
+= (new Alarm()).MakeAlert;
            myheater.Boiled 
+= Display.MakeDisplay;
            myheater.BoidWater();
        }
    }
}

相关文章: