Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MethodDefinition.cs
Go to the documentation of this file.
2
4
5public readonly struct MethodDefinition
6{
7 private readonly MetadataReader _reader;
8
9 private readonly uint _treatmentAndRowId;
10
11 private int RowId => (int)(_treatmentAndRowId & 0xFFFFFF);
12
14
16
18 {
19 get
20 {
21 if (Treatment == MethodDefTreatment.None)
22 {
24 }
25 return GetProjectedName();
26 }
27 }
28
30 {
31 get
32 {
33 if (Treatment == MethodDefTreatment.None)
34 {
36 }
37 return GetProjectedSignature();
38 }
39 }
40
42 {
43 get
44 {
45 if (Treatment == MethodDefTreatment.None)
46 {
48 }
50 }
51 }
52
54 {
55 get
56 {
57 if (Treatment == MethodDefTreatment.None)
58 {
60 }
61 return GetProjectedFlags();
62 }
63 }
64
66 {
67 get
68 {
69 if (Treatment == MethodDefTreatment.None)
70 {
72 }
73 return GetProjectedImplFlags();
74 }
75 }
76
77 internal MethodDefinition(MetadataReader reader, uint treatmentAndRowId)
78 {
79 _reader = reader;
80 _treatmentAndRowId = treatmentAndRowId;
81 }
82
84 {
87 return signatureDecoder.DecodeMethodSignature(ref blobReader);
88 }
89
94
99
104
106 {
108 if (num == 0)
109 {
110 return default(MethodImport);
111 }
112 return _reader.ImplMapTable.GetImport(num);
113 }
114
119
124
126 {
127 if ((Treatment & MethodDefTreatment.KindMask) == MethodDefTreatment.DisposeMethod)
128 {
130 }
132 }
133
135 {
137 MethodDefTreatment treatment = Treatment;
138 if ((treatment & MethodDefTreatment.KindMask) == MethodDefTreatment.HiddenInterfaceImplementation)
139 {
140 methodAttributes = (methodAttributes & ~MethodAttributes.MemberAccessMask) | MethodAttributes.Private;
141 }
142 if ((treatment & MethodDefTreatment.MarkAbstractFlag) != 0)
143 {
144 methodAttributes |= MethodAttributes.Abstract;
145 }
146 if ((treatment & MethodDefTreatment.MarkPublicFlag) != 0)
147 {
148 methodAttributes = (methodAttributes & ~MethodAttributes.MemberAccessMask) | MethodAttributes.Public;
149 }
150 return methodAttributes | MethodAttributes.HideBySig;
151 }
152
154 {
156 switch (Treatment & MethodDefTreatment.KindMask)
157 {
158 case MethodDefTreatment.DelegateMethod:
159 methodImplAttributes |= MethodImplAttributes.CodeTypeMask;
160 break;
161 case MethodDefTreatment.Other:
162 case MethodDefTreatment.AttributeMethod:
163 case MethodDefTreatment.InterfaceMethod:
164 case MethodDefTreatment.HiddenInterfaceImplementation:
165 case MethodDefTreatment.DisposeMethod:
166 methodImplAttributes |= (MethodImplAttributes)4099;
167 break;
168 }
169 return methodImplAttributes;
170 }
171
176
178 {
179 return 0;
180 }
181}
TypeDefinitionHandle GetDeclaringType(MethodDefinitionHandle methodDef)
BlobReader GetBlobReader(BlobHandle handle)
GenericParameterHandleCollection FindGenericParametersForMethod(MethodDefinitionHandle methodDef)
int FindImplForMethod(MethodDefinitionHandle methodDef)
StringHandle GetName(MethodDefinitionHandle handle)
BlobHandle GetSignature(MethodDefinitionHandle handle)
MethodAttributes GetFlags(MethodDefinitionHandle handle)
MethodImplAttributes GetImplFlags(MethodDefinitionHandle handle)
MethodSignature< TType > DecodeMethodSignature(ref BlobReader blobReader)
static MethodDefinitionHandle FromRowId(int rowId)
DeclarativeSecurityAttributeHandleCollection GetDeclarativeSecurityAttributes()
MethodSignature< TType > DecodeSignature< TType, TGenericContext >(ISignatureTypeProvider< TType, TGenericContext > provider, TGenericContext genericContext)
MethodDefinition(MetadataReader reader, uint treatmentAndRowId)
CustomAttributeHandleCollection GetCustomAttributes()
GenericParameterHandleCollection GetGenericParameters()
static StringHandle FromVirtualIndex(VirtualIndex virtualIndex)