zoukankan      html  css  js  c++  java
  • delegate

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections.Generic;

    using System.Text;

    // N:1调用
    public delegate void DataChangedHandler(int increment);
    // 操作实现,定义了数据计算方法
    public class CounterOperaotr
    {
        
    public DataChangedHandler Increased;
        
    public void Add(int data) { Increased(data); }
        
    public void Substract(int data) { Increased(-1 * data); }
    }

    // 操作引用,有操作引用实体及数据源
    public class Counter
    {
        
    public int Data;
        
    // 接收广播
        public Counter(CounterOperaotr counterOperator)
        
    {
            counterOperator.Increased 
    += ChangeData;
        }


        
    public void ChangeData(int increment){
            Data 
    += increment;
        }

    }

    // 2号
    public class Counter2
    {
        
    public int Data;
        
    // 接收广播
        public Counter2(CounterOperaotr counterOperator)
        
    {
            counterOperator.Increased 
    += ChangeData;
        }


        
    public void ChangeData(int increment){
            Data 
    += increment;
        }

    }


    public partial class test : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            Response.Write(Test());
        }

        
        
    public string Test()
        
    {
            
    // 操作类
            CounterOperaotr countoperator = new CounterOperaotr();
            
    // 操作类的客户
            Counter counter = new Counter(countoperator);
            
    // 客户2
            Counter2 counter2 = new Counter2(countoperator);

            countoperator.Add(
    12);
            countoperator.Substract(
    10);

            StringBuilder sb 
    = new StringBuilder();

            sb.AppendLine(counter.Data.ToString());
            sb.AppendLine(counter2.Data.ToString());

            
    return sb.ToString();
        }

    }
  • 相关阅读:
    线段的类
    计算三角形的类
    关于狗的类
    [poj2234] Matches Game
    bzoj[2655] calc
    拉格朗日插值和牛顿插值 菜鸟教程
    NOI模拟赛(3.15) sequence(序列)
    NOI模拟赛(3.13)Hike (远行)
    二分图讲解
    NOI模拟赛(3.8)Problem B
  • 原文地址:https://www.cnblogs.com/moye/p/949632.html
Copyright © 2011-2022 走看看