public ArrayTypeName(FlyweightFactory factory, Type type) { var t = type; var ranks = string.Empty; do { int rank; switch (rank = t.GetArrayRank()) { case 1: ranks += "[]"; break; case 2: ranks += "[,]"; break; case 3: ranks += "[,,]"; break; default: ranks += ("[" + new string(',', rank - 1) + "]"); break; } } while ((t = t.GetElementType()).IsArray); ElementTypeName = factory.GetTypeName(t); Ranks = ranks; TypeFullName = type.FullName; }
public PointerTypeName(FlyweightFactory factory, Type type) { ElementTypeName = factory.GetTypeName(type.GetElementType()); TypeFullName = type.FullName; }
public NullableTypeName(FlyweightFactory factory, Type type) { UnderlyingTypeName = factory.GetTypeName(Nullable.GetUnderlyingType(type)); _System = factory.GetNamespaceName(nameof(System)); TypeFullName = type.FullName; }