Defensive Coding in C#