The Problem How many times have you seen the following code snippets? 1. Checking method parameters if (executeMethod == null ) { throw new ArgumentNullException ( "executeMethod" ); } 2. Implementing a property in a WPF / SL view-model public double Size { get { return _size; } set { _size = value ; RaisePropertyChanged( "Size" ); } } The first time I had to wrote code like this I felt uneasy. Hardcoded strings are bad practice and should be rarely used. Even worse, using a hardcoded...