Popular Posts
SwiXml - TabbedPane TabbedPane.xml <?xml version="1.0" encoding="UTF-8"?> <panel layout="BorderLayout">     <label... Data type 資料類型 預設大小 大小 初始值 輸出長度 輸出定位 說明 C 1 1-65535 SPACE 字串長度 LEFT-JUSTIFIED 字... Create barcode import java.io.File; import java.io.FileNotFoundException; import net.sourceforge.barbecue.Barcode; import net.sourceforge.barbecue.Barcode...
Stats
review : delegate in c#
I think I've got old because while using delegate, I couldn't remember it's usage. So I think it's a good idea to take a review and memo it here.
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;

namespace wfConsole
{
    delegate void PrintLine();
    delegate void PrintContent(string s, int count);

    public sealed partial class Workflow1 : SequentialWorkflowActivity
    {
        public Workflow1()
        {
            InitializeComponent();
        }

        private void ReviewDelegate_ExecuteCode(object sender, EventArgs e)
        {
            // 委派 C# 1.0
            PrintLine pl = new PrintLine(this.WriteLine);
            PrintContent pc = new PrintContent(this.WriteContent);
            pl.Invoke();
            pc.Invoke("C# 1.0", 5);

            // 委派 C# 2.0
            PrintLine pl2 = delegate()
            {
                Console.WriteLine("********************");
            };
            PrintContent pc2 = delegate(string s, int count)
            {
                for (int i = 0; i < count; i++)
                {
                    Console.Write("{0:00} ", i + 1);
                    Console.WriteLine(s);
                }
            };
            pl2.Invoke();
            pc2.Invoke("C# 2.0", 5);

            // 委派 C# 3.0
            PrintLine pl3 = () =>
            {
                Console.WriteLine("----------------------");
            };
            PrintContent pc3 = (string s, int count) =>
            {
                for (int i = 0; i < count; i++)
                {
                    Console.Write("{0:00} ", i + 1);
                    Console.WriteLine(s);
                }
            };
            pl3.Invoke();
            pc3.Invoke("C# 3.0", 5);

            Console.Read();
        }

        private void WriteLine()
        {
            Console.WriteLine("=========================");
        }

        private void WriteContent(string s, int count)
        {
            for (int i = 0; i < count; i++)
            {
                Console.Write("{0:00} ", i + 1);
                Console.WriteLine(s);
            }
        }
    }

}