} // Read public static uint Read(this NativeReader reader, uint offset, out ArraySignatureHandle handle) { uint value; offset = reader.DecodeUnsigned(offset, out value); handle = new ArraySignatureHandle((int)value); handle._Validate(); return(offset); } // Read
public static string GetFullName(this ArraySignatureHandle handle, MetadataReader reader) { ArraySignature array = handle.GetArraySignature(reader); var result = array.ElementType.GetFullName(reader); if (result == null) { return(null); } return(result + "[" + (new string(',', array.Rank - 1)) + "]"); }
/// <summary> /// Emit multi-dimensional array type. /// </summary> /// <param name="arraySigHandle">Multi-dimensional array type specification signature handle</param> /// <param name="namespaceQualified">When set to true, include namespace information</param> private void EmitArrayTypeName(ArraySignatureHandle arraySigHandle, bool namespaceQualified) { ArraySignature arraySig = _metadataReader.GetArraySignature(arraySigHandle); EmitTypeName(arraySig.ElementType, namespaceQualified); _outputBuilder.Append('['); if (arraySig.Rank > 1) { _outputBuilder.Append(',', arraySig.Rank - 1); } else { _outputBuilder.Append('*'); } _outputBuilder.Append(']'); }