That is a lambda expression. It is a very special anonymous delegate. Basically you are defining a method and not giving a name. Its parameters are to the left of the =>
and the method body is to the right of the =>
. In your particular case,
(se, cert, chain, sslerror) => { return true; };
is an anonymous method defined by a lambda expression. This particular method has four parameters
object se
X509Certificate cert
X509Chain chain
SslPolicyErrors sslerror
and the method body is
return true;
It's as if you had said
class ServerCertificateValidation {
public bool OnRemoteCertificateValidation(
object se,
X509Certificate cert,
X509Chain chain,
SslPolicyErrors sslerror
) {
return true;
}
}
and then
var validation = new ServerCertificateValidation();
System.Net.ServicePointManager.ServerCertificateValidationCallback +=
validation.OnRemoteCertificateValidation;
How is that (blah,blah,blah)=>{return true;}
construct called and where can I find more info on such constructs?
It's called the same way that any other method is called. For example, you can do this:
Func<int, int, int> adder = (m, n) => m + n;
Here I am defining a method that eats a pair of int
and returns an int
. That int
is obtained by adding the values of the input parameters. It can be invoked like any other method.
int four = adder(2, 2);
Here's an article on MSDN on lambda expressions and an article on the lambda operator. If you're really interested, the name comes from lambda calculus.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…