var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) 是什么意思?意思是?
What does var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) ; mean?
我正在查看 SignalR Chat 应用程序,我不确定以下行是什么意思?
尤其是“x =>”部分。
var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) ;
然后检查变量并发送消息。
if (toUser != null && fromUser!=null)
{
"Send Message"
}
var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) ;
returns ConnectionId 属性 的第一个用户等于您的 "toUserId" 变量中的值,并将其放入 toUser。如果没有匹配到的用户,toUserId将等于null。
阅读http://msdn.microsoft.com/en-us/library/vstudio/bb340482%28v=vs.90%29.aspx了解更多详情
关于
if (toUser != null && fromUser!=null) { "Send Message" }
我觉得太简单了,我什至不知道该回答什么。如果您无法阅读它,我很抱歉,您访问了错误的网站。当你提供它时,坦率地说它没有做任何事情:它不会编译。所以请post一个真正的问题
x => x.ConnectionId == toUserId
是一个 lambda expression. This is a very concise way of declaring an anonymous delegate or method。你可以这样写:
private bool SelectUser(User x)
{
return x.ConnectionId == toUserId; // Where toUserId has to be a field.
}
用这个声明你可以写:
User toUser = ConnectedUsers.FirstOrDefault(SelectUser);
注意SelectUser
后面没有大括号()
,因为我们不想调用这里的方法;我们将其作为代表传递。将其视为一种方法指针。
另请注意,C# 会自动捕获 lambda 表达式中的变量 toUserId
,并使其作为字段对 lambda 表达式可见。这叫做 closure.
extension method FirstOrDefault
returns ConnectedUsers
枚举中连接 ID 匹配的第一个用户,或者 null
如果没有找到这样的用户(因此下面的 if (toUser != null ...)
检查。
我正在查看 SignalR Chat 应用程序,我不确定以下行是什么意思?
尤其是“x =>”部分。
var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) ;
然后检查变量并发送消息。
if (toUser != null && fromUser!=null)
{
"Send Message"
}
var toUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId) ;
returns ConnectionId 属性 的第一个用户等于您的 "toUserId" 变量中的值,并将其放入 toUser。如果没有匹配到的用户,toUserId将等于null。
阅读http://msdn.microsoft.com/en-us/library/vstudio/bb340482%28v=vs.90%29.aspx了解更多详情
关于
if (toUser != null && fromUser!=null) { "Send Message" }
我觉得太简单了,我什至不知道该回答什么。如果您无法阅读它,我很抱歉,您访问了错误的网站。当你提供它时,坦率地说它没有做任何事情:它不会编译。所以请post一个真正的问题
x => x.ConnectionId == toUserId
是一个 lambda expression. This is a very concise way of declaring an anonymous delegate or method。你可以这样写:
private bool SelectUser(User x)
{
return x.ConnectionId == toUserId; // Where toUserId has to be a field.
}
用这个声明你可以写:
User toUser = ConnectedUsers.FirstOrDefault(SelectUser);
注意SelectUser
后面没有大括号()
,因为我们不想调用这里的方法;我们将其作为代表传递。将其视为一种方法指针。
另请注意,C# 会自动捕获 lambda 表达式中的变量 toUserId
,并使其作为字段对 lambda 表达式可见。这叫做 closure.
extension method FirstOrDefault
returns ConnectedUsers
枚举中连接 ID 匹配的第一个用户,或者 null
如果没有找到这样的用户(因此下面的 if (toUser != null ...)
检查。