C# lamda表达式和action的理解以及扩展方法

 最近由于工作需要使用C#,C#半天lamda表达式和action作为参数使用语法和C++有一些区别,所以记一下

 

 

 

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            "hello world".Say((s1, s2) => MessageBox.Show(s1.ToUpperInvariant(), s2.ToUpperInvariant(), MessageBoxButtons.OK, MessageBoxIcon.Information));

            "hello world".Say2((s1) =>
            {
                return s1.ToUpperInvariant();
            });
        }
    }

    public static class Helper
    {
        public static void Say(this string message, Action action)
        {
            action.Invoke(message, "Welcome");
        }

        public static void Say2(this string message, Func func)
        {
            Console.WriteLine(func.Invoke(message));
        }
    }

上面的代码理解说明一下,

Helper类里的两个方法都是string的扩展方法,然后action传递一个方法叫action,通过lamda表达式新建了一个方法。

 

 

你可能感兴趣的:(C#)