protected override void Write(CiType type, bool promote) { switch (type) { case null: Write("void"); break; case CiIntegerType integer: Write(GetIntegerTypeCode(integer, promote)); break; case CiStringType _: Write("string"); break; case CiListType list: Include("System.Collections.Generic"); Write("List<"); Write(list.ElementType, false); Write('>'); break; case CiDictionaryType dict: Write(dict); break; case CiArrayType array: Write(array.ElementType, false); Write("[]"); break; default: if (type.IsClass(CiSystem.RegexClass) || type.IsClass(CiSystem.MatchClass)) { Include("System.Text.RegularExpressions"); } Write(type.Name); break; } }