если посмотреть на декомпилированный источник кода .net framework, большинство API-интерфейсов имеют такие проверки, как эти
if (source == null)
throw Error.ArgumentNull("source");
в аргументах метода вместо использования более общего класса, такого как
Guard.IsNotNull(source);
Есть ли причина в том, чтобы делать это каждый раз, или это просто устаревший код, который был вокруг с момента разработки структуры, и новые классы продвигаются к этому или есть какие-либо неотъемлемые преимущества наличия явных проверок? Одна из причин, по которой я мог бы подумать, - это, вероятно, избежать перегрузки стека указателями на функции.