C# Common Type System