星期六, 6月 12, 2021

[C#] Delegate - Method 使用

技術社群看到的 delegate 使用方式,直接拿 Func<T,TResult> Delegate 範例來記錄
using System;
using System.Linq;

namespace DelegateSample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 定義一個 delegate 來進行字串轉換
            Func<string, string> FuncToUpper = str => str.ToUpper();

            // 定義字串陣列
            string[] words = { "orange", "apple", "Article", "elephant" };

            // 使用方法 1:直接丟進 Select 內跑並輸出
            words.Select(FuncToUpper).ToList()
                .ForEach(s => Console.WriteLine(s));

            // 使用方法 2:把 delegate 直接當成 Method 使用
            foreach (var w in words)
            {
                Console.WriteLine(FuncToUpper(w));
            }
        }
    }
}
該方式等於是把該 Method 內使用到的 Method 放在其中,不用在 Method 外建立一個 Method,整體可讀性增加不少

沒有留言:

張貼留言