C#委托基础8——lambda表达式-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

C#委托基础8——lambda表达式

简介:   C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。 class Program { double AddInt(int x, int y) { return x + y; } string AddString(string s1, string s2)

 

C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。

class Program
{
        double AddInt(int x, int y)
        {
            return x + y;
        }

        string AddString(string s1, string s2)
        {
            return s1 + s2;
        }

        static void Main(string[] args)
        {
            Program p = new Program();

            // 以为前两个参数为int,他们运行的结果为double,最后一个参数与AddInt返回值一致
            Func<int, int, double> funcInt = p.AddInt;
            Console.WriteLine("funcInt的值为{0}", funcInt(100, 300));

           

            Func<string, string, string> funcString = p.AddString;
            Console.WriteLine("funcString的值为{0}", funcString("aaa", "bbb"));

 

            // 匿名方法
            Func<float, float, float> fucFloat = delegate(float x, float y)
            {
                return x + y;
            };
            Console.WriteLine("funcFloat的值为{0}", fucFloat(190.7F, 99999.9F));

           

            // Lambda表达式
            Func<string, string, string> funString2 = (x, y) => (x + y);
            Console.WriteLine("funString2的值为{0}", funString2("ttt", "bbb"));
            Console.ReadLine();
        }
}


 本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: