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

    }
  • 相关阅读:
    NOIp2018集训test-9-4
    「THUSC 2016」成绩单 & 方块消除 (区间dp)
    NOIp2018集训test-9-2(pm)
    NOIp2018集训test-9-2(am)
    NOIp2018集训test-9-1(pm)
    NOIp2018集训test-9-1(am)
    暑假集训test-8-31(pm)
    暑假集训test-8-31(am)
    暑假集训test-8-30
    day22 笔记
  • 原文地址:https://www.cnblogs.com/moye/p/949632.html
Copyright © 2011-2022 走看看