Recently I had been working on a SharePoint provider-hosted app which required me to create an abundance of SharePoint site columns and content types. As I was building them out I realized so many attributes that a developer has access to. When building columns in Visual Studio, you have much more control and flexibilty when editing properties of the SharePoint column. Below is an example of a Multi-lookup site column called ResidentAsset. A few of those attributes look very similar don't they? Name, DisplayName, StaticName. You may ask what the difference between these attributes are.
DisplayName: the name that is shown to a user. It can contain any assortment of special characters and or letters.
Name: a read-only field that is derived from the DisplayName field. It is a unique field which cannot be changed. It is used at the unique identifer for this column in the list. In the event you have multiple Name fields with the same value, SharePoint will automatically add numbers to the ending.
StaticName: much like the Name field it is derived from the DisplayName field however isn't read only. You may use StaticName to get or set the Name field.