• 委托——窗体间传值150525


    委托总结

    //总结
    //和outputTime();表达一样,编译器会把outputTime();编译成outputTime.Invoke();
    //1 定义委托数据类型
    //2 定义委托变量
    //3 判断委托类型是否存在,使用委托
    //if (outputTime != null)
    // {
    // //和outputTime();表达一样,编译器会把outputTime();编译成outputTime.Invoke();
    // outputTime.Invoke();
    // }
    // 文件写入操作File.WriteAllText(@"aaa.text", System.DateTime.Now.ToString("yy-MM-dd hh-mm-ss"));

    调试程序,在要查看的位置设置断点,F10下一步

    一般程序,以两种方式显示时间(控制台和写入文件)

    主程序:  
    
    class Program
        {
            static void Main(string[] args)
            {
                Class1 t1 = new Class1();
                t1.outputTime = M1;
                t1.output1_time();
               
    
                Class2 t2 = new Class2();
                t2.outputTime = M2;
                t2.output1_time();
    
                Console.ReadKey();
            }
            static void M1()
            {
                Console.WriteLine("当前时间:{0}", System.DateTime.Now.ToString());
            }
    
            static void M2()
            {
                File.WriteAllText(@"aaa.text", System.DateTime.Now.ToString("yy-MM-dd  hh-mm-ss"));
            }
        }
    
    类
     //定义一个委托类型
        public delegate void dele_time();
       
        public class Class1
        {
            public dele_time outputTime;
            public void output1_time()
            {
                Console.WriteLine("--------------------------------------------------");
                Console.WriteLine("--------------------------------------------------");
                if (outputTime!=null)
                {
                    outputTime();
                }
                    
                Console.WriteLine("--------------------------------------------------");
                Console.WriteLine("--------------------------------------------------");
            }
        }
        public class Class2
        {
            public dele_time outputTime;
            public void output1_time()
            {
                Console.WriteLine("--------------------------------------------------");
                Console.WriteLine("--------------------------------------------------");
                if (outputTime != null)
                {
                    //和outputTime();表达一样,编译器会把outputTime();编译成outputTime.Invoke();
                    outputTime.Invoke();
                }
    
                Console.WriteLine("--------------------------------------------------");
                Console.WriteLine("--------------------------------------------------");
            }
        }

    窗体间传值代码

    1 定义委托类型
    public delegate void dele_chuanzhi(string str);
    
    
    form1代码
    
     private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.Show();
                f2.chuanzhi = updateBtn;
               
            }
    
      private void updateBtn(string str)
            {
                textBox1.Text = str;
            }
    
    
    
    form2代码
    private void textBox1_KeyUp(object sender, KeyEventArgs e)
            {
                //this.Text = textBox1.Text;
                string uInput = this.textBox1.Text;
                if (chuanzhi != null)
                {
                    chuanzhi(uInput);
                }
            }
  • 相关阅读:
    【codevs1690】开关灯 (线段树 区间修改+区间求和 (标记))
    【codevs1191】数轴染色 (线段树 区间修改+固定区间查询)
    【机器学习】李航 统计学习方法 知识点总结
    【机器学习】生成模型 判别模型
    【机器学习】贝叶斯定理、精准推断、最大似然估计、连续特征参数估计、EM算法
    python queue 讲解
    【tensorflow】 CNN卷积神经网络原理讲解+图片识别应用(附源码)
    URL解析过程
    Python 可迭代对象迭代器生成器的区别
    【Linux】 修改主机名
  • 原文地址:https://www.cnblogs.com/lv-sally/p/4528640.html
Copyright © 2020-2023  润新知