c# 委託測試

wisdomone1發表於2012-03-31
--學習委託
namespace ConsoleApplication1
{
    //宣告委託型別  
    //委託返回型別為string
    //委託引數型別為string
    //委託返回型別及引數型別要與委託呼叫的方法相匹配,即與方法返回型別與引數型別匹配
    public   delegate string dgt_typ(string str);
    public class Testdelegate
    {
        public static string Replacespacestr(string str)
        {
            string temp="";
            char[] c1 = str.ToCharArray();
            foreach(char x in c1)
            {
                if (x!=' ')
                {
                    temp+=x;
                }
            }
            return temp;
        }

        public static string Reversestr(string str)
        {
            string temp = "";
            for (int i = str.Length-1; i >= 0;i-- )
            {
                temp += str[i];
            }
            return temp;
        }
    }
}



class Program
    {

        static void Main(string[] args)
        {
           //定義一個委託型別的變數,在建構函式里面呼叫委託要呼叫的方法,且方法不用帶括號()
           dgt_typ mydelegate = new dgt_typ(Testdelegate.Replacespacestr);
           
           //透過上述的委託型別變數來真正呼叫方法,作具體的工作,前面的宣告委託型別及定義委託型別變數全是準備工作
           //this is a big one對應委託呼叫方法的方法引數的具體值
           string mystr=mydelegate("this is a big one");
           Console.WriteLine(mystr);
           Console.ReadKey();
           mydelegate = Testdelegate.Reversestr;
           string rev=mydelegate(mystr);
           Console.WriteLine(rev);
           Console.ReadKey();
        }
    }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-720035/,如需轉載,請註明出處,否則將追究法律責任。

相關文章