В 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)Источник: https://twitter.com/Nick_Craver/status/1476929172249448459
{
ArgumentNullException.ThrowIfNull(id);
ArgumentNullException.ThrowIfNull(name);
// ...
}
