IKVM11  11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
IKVM.Reflection.MultiArrayType Class Referencesealed
Inheritance diagram for IKVM.Reflection.MultiArrayType:
IKVM.Reflection.ElementHolderType

Public Member Functions

override MethodBase[] __GetDeclaredMethods ()
 
override int GetArrayRank ()
 
override int[] __GetArraySizes ()
 
override int[] __GetArrayLowerBounds ()
 
override bool Equals (object o)
 
override int GetHashCode ()
 
- Public Member Functions inherited from IKVM.Reflection.ElementHolderType
override CustomModifiers __GetCustomModifiers ()
 
override string ToString ()
 
override Type GetElementType ()
 

Protected Member Functions

override Type Wrap (Type type, CustomModifiers mods)
 
- Protected Member Functions inherited from IKVM.Reflection.ElementHolderType
 ElementHolderType (Type elementType, CustomModifiers mods, byte sigElementType)
 Initializes a new instance.
 
bool EqualsHelper (ElementHolderType other)
 
Type Wrap (Type type, CustomModifiers mods)
 

Properties

override Type BaseType [get]
 
override TypeAttributes Attributes [get]
 
- Properties inherited from IKVM.Reflection.ElementHolderType
override string Name [get]
 
override string Namespace [get]
 
override string FullName [get]
 
override Module Module [get]
 
override bool ContainsGenericParameters [get]
 
override bool ContainsMissingTypeImpl [get]
 
override bool IsValueTypeImpl [get]
 

Additional Inherited Members

- Protected Attributes inherited from IKVM.Reflection.ElementHolderType
readonly Type elementType
 
- Package Functions inherited from IKVM.Reflection.ElementHolderType

Detailed Description

Definition at line 27 of file MultiArrayType.cs.

Member Function Documentation

◆ __GetArrayLowerBounds()

override int[] IKVM.Reflection.MultiArrayType.__GetArrayLowerBounds ( )

Definition at line 101 of file MultiArrayType.cs.

102 {
103 return Util.Copy(lobounds);
104 }

◆ __GetArraySizes()

override int[] IKVM.Reflection.MultiArrayType.__GetArraySizes ( )

Definition at line 96 of file MultiArrayType.cs.

97 {
98 return Util.Copy(sizes);
99 }

◆ __GetDeclaredMethods()

override MethodBase[] IKVM.Reflection.MultiArrayType.__GetDeclaredMethods ( )

Definition at line 60 of file MultiArrayType.cs.

61 {
62 var int32 = Module.Universe.System_Int32;
63 var setArgs = new Type[rank + 1];
64 var getArgs = new Type[rank];
65 var ctorArgs = new Type[rank * 2];
66 for (int i = 0; i < rank; i++)
67 {
68 setArgs[i] = int32;
69 getArgs[i] = int32;
70 ctorArgs[i * 2 + 0] = int32;
71 ctorArgs[i * 2 + 1] = int32;
72 }
73
74 setArgs[rank] = elementType;
75
76 return new MethodBase[]
77 {
78 new ConstructorInfoImpl(new BuiltinArrayMethod(Module, this, ".ctor", CallingConventions.Standard | CallingConventions.HasThis, Module.Universe.System_Void, getArgs)),
79 new ConstructorInfoImpl(new BuiltinArrayMethod(Module, this, ".ctor", CallingConventions.Standard | CallingConventions.HasThis, Module.Universe.System_Void, ctorArgs)),
80 new BuiltinArrayMethod(Module, this, "Set", CallingConventions.Standard | CallingConventions.HasThis, Module.Universe.System_Void, setArgs),
81 new BuiltinArrayMethod(Module, this, "Address", CallingConventions.Standard | CallingConventions.HasThis, elementType.MakeByRefType(), getArgs),
82 new BuiltinArrayMethod(Module, this, "Get", CallingConventions.Standard | CallingConventions.HasThis, elementType, getArgs),
83 };
84 }
IKVM.Reflection.Module Module
IKVM.Reflection.Type Type
IKVM.Reflection.MethodBase MethodBase

◆ Equals()

override bool IKVM.Reflection.MultiArrayType.Equals ( object o)

Definition at line 106 of file MultiArrayType.cs.

107 {
108 var at = o as MultiArrayType;
109 return EqualsHelper(at)
110 && at.rank == rank
111 && ArrayEquals(at.sizes, sizes)
112 && ArrayEquals(at.lobounds, lobounds);
113 }
bool EqualsHelper(ElementHolderType other)

◆ GetArrayRank()

override int IKVM.Reflection.MultiArrayType.GetArrayRank ( )

Definition at line 91 of file MultiArrayType.cs.

92 {
93 return rank;
94 }

◆ GetHashCode()

override int IKVM.Reflection.MultiArrayType.GetHashCode ( )

Definition at line 129 of file MultiArrayType.cs.

130 {
131 return elementType.GetHashCode() * 9 + rank;
132 }

◆ Wrap()

override Type IKVM.Reflection.MultiArrayType.Wrap ( Type type,
CustomModifiers mods )
protected

Definition at line 142 of file MultiArrayType.cs.

143 {
144 return Make(type, rank, sizes, lobounds, mods);
145 }

Property Documentation

◆ Attributes

override TypeAttributes IKVM.Reflection.MultiArrayType.Attributes
get

Definition at line 86 of file MultiArrayType.cs.

87 {
88 get { return TypeAttributes.Public | TypeAttributes.Sealed | TypeAttributes.Serializable; }
89 }

◆ BaseType

override Type IKVM.Reflection.MultiArrayType.BaseType
get

Definition at line 55 of file MultiArrayType.cs.

56 {
57 get { return elementType.Module.Universe.System_Array; }
58 }

The documentation for this class was generated from the following file: