private TypeRef AddTypeArray(ArrayTypeSlim type, ReadOnlyCollection <TypeSlim> genericArguments) { var rank = type.Rank; var elementType = AddType(type.ElementType, genericArguments); var index = _typeDefs.Count; _typeDefs.Add(new ArrayTypeDef(elementType, rank)); return(new SimpleTypeRef(index)); }
protected override System.Type MakeArrayType(ArrayTypeSlim type, System.Type elementType, int?rank) { var res = default(System.Type); if (elementType != null) { if (rank == null) { res = elementType.MakeArrayType(); } else { res = elementType.MakeArrayType(rank.Value); } } return(res); }
/// <summary> /// Creates a new lightweight representation of a multi-dimensional array type. /// </summary> /// <param name="elementType">The element type of the array.</param> /// <param name="rank">The number of dimensions of the array.</param> /// <returns>A lightweight representation of a multi-dimensional array type.</returns> public static ArrayTypeSlim Array(TypeSlim elementType, int rank) { return ArrayTypeSlim.CreateMultiDimensional(elementType, rank); }
/// <summary> /// Creates a new lightweight representation of a single-dimensional array type. /// </summary> /// <param name="elementType">The element type of the array.</param> /// <returns>A lightweight representation of a single-dimensional array type.</returns> public static ArrayTypeSlim Array(TypeSlim elementType) { return ArrayTypeSlim.CreateVector(elementType); }