using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public delegate void DelegateParam(List<string> _string); public partial class Form2 : Form { public event DelegateParam Transmit; public Action<string> action; public Func<string,int> func; public Predicate<string> predicate; public Form2() { InitializeComponent(); this.button2.Click += Button2_Click; } private void Button2_Click(object sender, EventArgs e) { Transmit?.Invoke(new List<string>() { this.label1.Text.ToString() }); action?.Invoke(this.label1.Text.ToString()); int? a = func?.Invoke(this.label1.Text.ToString()); MessageBox.Show(a.ToString()); bool? status= predicate?.Invoke(this.label1.Text.ToString()); MessageBox.Show(status.ToString()); } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Transmit += new DelegateParam(DelegateReceiveParam); form2.action += new Action<string>(ActionReceiveParam); form2.func += new Func<string, int>(FuncReceiveParam); form2.predicate += new Predicate<string>(PredicateReceiveParam); form2.Show(); } public void DelegateReceiveParam(List<string> vs) { this.label1.Text = vs[0]; } public void ActionReceiveParam(string vs) { this.label1.Text = vs; } public int FuncReceiveParam(string vs) { this.label1.Text = vs; return 1; } public bool PredicateReceiveParam(string vs) { this.label1.Text = vs; return true; } } }