Используя AES или реализацию AES? Для использования AES существует Система. Безопасность. Криптография. Класс RijndaelManaged.
=>
, а тело метода - справа от =>
. В вашем конкретном случае
(se, cert, chain, sslerror) => { return true; };
- это анонимный метод, определенный лямбда-выражением. Этот конкретный метод имеет четыре параметра
object se
X509Certificate 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);
Вот статья на MSDN о лямбда-выражениях и статья об лямбда-операторе . Если вам действительно интересно, название происходит от лямбда-исчисления .
Джейсон объясняет это очень хорошо. Вот пример использования события, которое прослушивается с использованием разных методов:
using System;
namespace Events
{
class Program
{
static void Main(string[] args)
{
Events e = new Events();
e.FireEvents();
Console.ReadLine();
}
}
public class Events
{
private event EventHandler<EventArgs> EventTest;
public Events()
{
EventTest += new EventHandler<EventArgs>(function);
EventTest += delegate
{
Console.WriteLine("written by an anonymous method.");
};
EventTest += (o, e) =>
{
Console.WriteLine("written by a lambda expression");
};
}
private void function(object sender, EventArgs e)
{
Console.WriteLine("written by a function.");
}
public void FireEvents()
{
if (EventTest != null)
EventTest(this, new EventArgs());
}
}
}
Для полноты (для результатов поиска и т. Д.): В более поздних версиях C # (начиная с 6.0) синтаксис =>
был расширен с просто лямбда-выражений для делегатов и деревьев выражений, чтобы охватить членов с выражением тела . Это означает, что ряд простых членов, таких как свойства, методы и т. Д., Могут быть реализованы как тела выражений; например:
public int Foo { get { return innerObj.SomeProp; } }
public void Bar() { Write("Thing"); }
можно записать:
public int Foo => innerObj.SomeProp;
public void Bar() => Write("Thing");
=>
-оператор представляет лямбда-выражение.
Но для тех из вас, кто посещает этот вопрос в настоящее время, другой вариант использования может быть стрелкой в качестве сокращения для получателя собственности. Эта функция появилась в C # 6. Поэтому вместо записи
public string Foo
{
get
{
return this.bar;
}
}
вы можете использовать следующий фрагмент:
public string Foo
{
get => this.bar;
}
или даже короче:
public string Foo => this.bar;