В С# есть ли веские причины (отличные от лучшего сообщения об ошибке) для добавления значения параметра null для каждой функции, где null не является допустимым значением? Очевидно, что код, который использует s, все равно выдает исключение. И такие проверки делают код медленнее и труднее поддерживать.
void f(SomeType s)
{
if (s == null)
{
throw new ArgumentNullException("s cannot be null.");
}
// Use s
}