I have a method that accepts params as a parameter to check if a property has invalid value or not. If the property has an invalid value, it throws an exception
private void ShouldNotEqual<T>(Expression<Func<Ticket, T>> outExpr, params object[] notValidPropertyValue)
The usage is:
ShouldNotEqual(student => student.Name, "jack", string.Empty);
ShouldNotEqual(student => student.Address, string.Empty, null);
The problem with this implementation is when I want to check a property against null, the parameter notValidPropertyValue is set as null, not an array with one element whose value is equal to null.
// I need to use it in this way
ShouldNotEqual(student => student.Phone, null); // Throws NullReferenceException for notValidPropertyValue
How can I fix it?
>Solution :
Are you sure you want null in the array and not just an empty array?
If you want null, use
var array = new object[] { null };
to create an array containing one value, null.
Then call ShouldNotEqual with the array, e.g.
ShouldNotEqual(student => student.Phone, array);
Or just inline it:
ShouldNotEqual(student => student.Phone, new object[] { null });
If you want an empty array, then just use
ShouldNotEqual(student => student.Phone, new object[0]);