带有“箭头”的C#代码是什么意思,如何称呼它?
我试图在我的C#客户端程序中启用SSL,并在此答案中找到以下代码:
System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
{
return true;
};
我将代码添加到程序中,它解决了问题,但是我完全不知道它的工作原理。
左侧System.Net.ServicePointManager.ServerCertificateValidationCallback
是一些回调并+=
修改该回调。但是剩下的构造是什么意思?我花了20分钟的时间进行搜索,至少找到了如何正确调用它,以及在哪里可以找到有关如何阅读该信息的更多信息,但这些都是徒劳的。我想它与LINQ有某种联系,并搜索了“
LINQ arrow”,但没有找到任何合理的方法。
如何(blah,blah,blah)=>{return true;}
调用该构造?在哪里可以找到更多有关此类构造的信息?
回答:
那是一个lambda表达式。这是一个非常特殊的匿名代表。基本上,您是在定义方法而不是给出名称。其参数位于的左侧,=>
方法主体位于的右侧=>
。在您的特定情况下,
(se, cert, chain, sslerror) => { return true; };
是由lambda表达式定义的匿名方法。此特定方法具有四个参数
object seX509Certificate cert
X509Chain chain
SslPolicyErrors sslerror
方法主体是
return true;
好像你说过的
class ServerCertificateValidation { public bool OnRemoteCertificateValidation(
object se,
X509Certificate cert,
X509Chain chain,
SslPolicyErrors sslerror
) {
return true;
}
}
然后
var validation = new ServerCertificateValidation();System.Net.ServicePointManager.ServerCertificateValidationCallback +=
validation.OnRemoteCertificateValidation;
如何
(blah,blah,blah)=>{return true;}
调用该构造?在哪里可以找到更多有关此类构造的信息?
它的调用方式与调用任何其他方法的方式相同。例如,您可以这样做:
Func<int, int, int> adder = (m, n) => m + n;
在这里,我正在定义一个方法,该方法吃一对int
并返回一个int
。这int
是通过将输入参数的值相加而获得的。可以像其他任何方法一样调用它。
int four = adder(2, 2);
这是有关Lambda表达式的 MSDN
文章和有关Lambda运算符的文章。如果您真的很感兴趣,则该名称来自lambda演算。
以上是 带有“箭头”的C#代码是什么意思,如何称呼它? 的全部内容, 来源链接: utcz.com/qa/431070.html