C#のデリゲートの記述と説明

委員会は、関数の宣言ですが、何の関数本体が存在しない、それは異なる目的のために様々な機能を参照することができ、本当の事は他の人に対処します。
以下の最も簡単な方法:
例1:

private void button3_Click(object sender, EventArgs e)
        {
            Set set_deg = new Set(set2);
            set_deg(80);
        }
        public void set2(int value)
        {
            progressBar1.Value = value; 
        }

例2:

public delegate string rename(string name);
        public string get_rename(rename rename,string name)
        {
            return "final name:" + rename(name);
        }
        public string test(string name)
        {
            return "rename:"+name;
        }
        private void button7_Click(object sender, EventArgs e)
        {
            rename rename=new rename(test);
            string final_name = get_rename(rename, "刘洪方");
            MessageBox.Show(final_name);
        }

複数のスレッドのシナリオを使用している場合、あなたは、インプリメンテーション以下の委任コントロールウィンドウを呼び出すためにスレッドを起動する必要があります。

public void set(int value)
        {
            progressBar1.Value = value;
        }
private void button2_Click(object sender, EventArgs e)
        {
            ThreadStart ts = new ThreadStart(run);
            Thread thread = new Thread(ts);
            thread.Start();
        }
public void run()
        {
            for (int i = 1; i <= 100; i++)
            {
                Thread.Sleep(100);
                if (this.InvokeRequired)
                {
                    Set set_deg = new Set(set);
                    this.Invoke(set_deg, new object[] { i });
                }
                else
                {
                    set(i);
                }                
            }
        }
公開された48元の記事 ウォンの賞賛3 ビュー20000 +

おすすめ

転載: blog.csdn.net/chscomfaner/article/details/103729882