日期:2014-05-17  浏览次数:20575 次

.NET 4.0中老是看到 => 操作符,什么意思

C# code

var albums = storeDB.albums
.Include("artist")
.Where (a => a.title.contains(q))
.take(10);

//-------------

    public ViewResult Index()
        {
            var album = db.Albums.Include(a => a.Genre).Include(a => a.Artist);
            return View(album.ToList());
        }



这个 => 操作符到底什么意思,谢谢解答。

------解决方案--------------------
lambda=>http://msdn.microsoft.com/zh-cn/library/vstudio/bb397687.aspx
------解决方案--------------------
Lambda表达式,相当于一个函数,()为它的参数,=>后面的是函数的表达是。

比如
Func<int, int> Abs = x => x > 0 ? x : 0 - x;
------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/bb397687(v=vs.90).aspx
------解决方案--------------------
=> 英文可以读goto. 这里意思是函数的定义在后面

如果你熟悉JavaScript的匿名函数,就比较好理解:

a => a.title.contains(q)

相当于 JavaScript的匿名函数(jQuery 有很多的例子):

function(a){ 
return a.title.contains(q);
}

a => a.title.contains(q)
大约相当于C#
bool Function(album a) 
{
return a.title.contains(q);
}

再具体你要仔细看lambda expression/closure
------解决方案--------------------
lambda表达式