evildictaitor said:
TommyCarlier said:
*snip*
Those are defined as part of the C# Ecma specification. String.Empty isn't.

The compiler demands all of the primitives (byte,sbyte,char,string,int16,int32,int64,uint16,uint32,uint64,intptr,uintptr,bool and void), the metatypes (delegate, multicastdelegate, valuetype,object,enum,array), some special types (exception, runtimehandles) some compiler directives (paramsarrayattribute,outattribute) and the interfaces IEnumerable, IDisposable, IEnumerator (with appropriate types on the interfaces) to be defined as part of the ECMA standard for C#. Most everything else in C# is library and syntax sugar.
Interesting discussion, learning a lot from this.