День 1075. #ЧтоНовенького
В C #10 появился новый атрибут CallerArgumentExpression. Он позволяет записывать выражение, переданное в качестве параметра, в виде строки (см. рисунок). Как и другие атрибуты CompilerServices, он применяется к необязательному параметру.
Кстати, его использует новый метод
ArgumentNullException.ThrowIfNull(nullArg);
в .NET без явной передачи имени.
Если раньше нам нужно было писать что-то подобное:
public bool DoSomething(string id, string name)
{
if (id is null)
throw new ArgumentNullException(nameof(id));
if (name is null)
throw new ArgumentNullException(nameof(id));
// ...
}
Теперь новый метод позволяет писать более чистый код:
public bool DoSomething(string id, string name)
{
ArgumentNullException.ThrowIfNull(id);
ArgumentNullException.ThrowIfNull(name);
// ...
}
Источник: twitter.com/Nick_Cr…49448459