C# 代理人 Action<>

最近在寫C# CMD檔案 由於這種檔案都是由一個靜態的 static void Main(string[] args) 作為發起

因此命名function的時候都需要加一個static 

static void ShowDirOrFile(SftpFile item){

    //Todo....

}


但是最近看到一個寫法 是這樣

static void Main(string[] args) {

        Action<SftpFile> ShowDirOrFile = (item) =>

        {

            //todo....

        };

}

他直接寫進裡面 而呼叫也很簡單 像一般的呼叫即可

ShowDirOrFile (working_directory);

()內的值就是 item


另一種寫法 可以帶回傳值
 #region Func 用於調整圖片大小
 Func<string, (int width, int height)> GetImageDimensions = (path) =>
 {
     if (!File.Exists(path))
     {
         Console.WriteLine("找不到圖片");
         return (-1, -1);
     }
     System.Drawing.Image image = System.Drawing.Image.FromFile(path);
     return (image.Width, image.Height);
 };
 #endregion


參考:https://learn.microsoft.com/zh-tw/dotnet/api/system.action-1?view=net-8.0

https://www.tpisoftware.com/tpu/articleDetails/2645

留言

這個網誌中的熱門文章

無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

MongoDB 入門

DDD With MVC