Beispiel #1
0
        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;
        }
Beispiel #2
0
 public PointerTypeName(FlyweightFactory factory, Type type)
 {
     ElementTypeName = factory.GetTypeName(type.GetElementType());
     TypeFullName    = type.FullName;
 }
Beispiel #3
0
 public NullableTypeName(FlyweightFactory factory, Type type)
 {
     UnderlyingTypeName = factory.GetTypeName(Nullable.GetUnderlyingType(type));
     _System            = factory.GetNamespaceName(nameof(System));
     TypeFullName       = type.FullName;
 }