Что означает такая форма вызова метода?

180
05 октября 2018, 21:10

Есть строка в коде:

ServicePointManager.ServerCertificateValidationCallback =
                        (obj, certificate, chain, errors) => true

Не понимаю смысл строки (пытаюсь разобрать чужой код). Если (obj, certificate, chain, errors) - параметры метода, то почему перед ними знак равенства? И что значит "=> true" после них?

Answer 1
private bool MyMethod(TypeOfObj obj, TypeOfCertificate certificate, TypeOfChain chain, TypeOfErrors errors)
{
   return true;
}
...
ServicePointManager.ServerCertificateValidationCallback = MyMethod;
Answer 2

Свойство ServicePointManager.ServerCertificateValidationCallback имеет тип делегата RemoteCertificateValidationCallback

Знак равенства здесь потому что мы записываем в это свойство значение. В качестве значения здесь выступает анонимная функция (obj, certificate, chain, errors) => true, которая при любых параметрах возвращает значение true.

Этот код можно развернуть примерно так (на самом деле его компилятор и разворачивает, но даёт методу специальное имя, к которому мы не имеем доступа):

bool someRemoteCertificateValidationCallback(
    object sender,
    X509Certificate certificate,
    X509Chain chain,
    SslPolicyErrors sslPolicyErrors)
{
    return true;
}
ServicePointManager.ServerCertificateValidationCallback
    = someRemoteCertificateValidationCallback;
READ ALSO
Конвертировать MS-DOS time format

Конвертировать MS-DOS time format

Нужно конвертировать байты MS-DOS time полученные с устройства 17 86 FF 4C в обычный читаемый форматПробовал таблицу http://www

202
Применение модификаторов virtual/override

Применение модификаторов virtual/override

Приведите, пожалуйста, хотя бы один реальный пример использования модификаторов virtual/override, где модификаторы virtual/ovveride оказываются действительно...

141
Вернуть Enum или Class из Dictionary<string, object>

Вернуть Enum или Class из Dictionary<string, object>

Помогите адаптировать методы для C# из Java (методы используются в расширении базового DictionaryТема здесь

140
Чтение из C# Stream в коде C++

Чтение из C# Stream в коде C++

Есть ли способ прочитать данные из Stream, созданного в C# в unmanaged C++ коде? Заранее благодарен)

171