
Авто-регистрация тестов на С средствами языка
14 min

User
catch
. Этот блок будет исполнятся только в случае, если указанные условия выполнены. Проиллюстрируем синтаксис небольшим фрагментом кода:public void Main()
{
try
{
throw new Exception("E2");
}
catch(Exception ex) when(ex.Message == "E1")
{
Console.WriteLine("caught E1");
}
catch(Exception ex) when(ex.Message == "E2")
{
Console.WriteLine("caught E2");
}
}
?.
(null coalescing operator) помогает писать чистый простой и понятный код. Сегодня я покажу 4 ситуации, в которых он может быть очень полезен.null
каждое значение в цепочке:var location = default(string);
if (vendor != null)
{
if (vendor.ContactPerson != null)
{
if (vendor.ContactPerson.HomeAddress != null)
{
location = vendor.ContactPerson.HomeAddress.LineOne;
}
}
}
var location = vendor?.ContactPerson?.HomeAddress?.LineOne;
?.
сделает так, что как только в одном из свойств цепочки окажется null
, дальнейшее вычисление выражения производится не будет. Посмотрим ещё несколько примеров.