argument-validation

C#: Best practice for validating "this" argument in extension methods

Let's say I have an extension method public static T TakeRandom<T>(this IEnumerable<T> e) { ... To validate the argument e, should I: A) if (e == null) throw new NullReferenceException() B) if (e == null) throw new ArgumentNullException("e") C) Not check e What's the consensus? My first thought is to always validate arguments, ...

C#: Argument validation: null/empty strings

I don't know how many countless times I've had to write code to validate string arguments: public RoomName(string name) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException("Cannot be empty", "name"); } } Is there anyway to avoid this? Is there some attribute or design-by-contract mechanism to avoid this? I...

What is the best practice in case one argument is null?

when validating methods' input, I used to check if the argument is null, and if so I throw an ArgumentNullException. I do this for each and every argument in the list so I end up with code like this: public User CreateUser(string userName, string password, string Email, string emailAlerts, ...

How to avoid argument validation

Validating Primitive Arguments and "Complex Data" Validating Arguments When writing a method, arguments should be validated first before any operations are performed. For example, let's say we've got a class representing people: public class Person { public readonly string Name; public readonly int Age; public class Perso...