Merge pull request #704 from jgagnon/master
[mono.git] / mcs / class / corlib / Documentation / en / System.Reflection / MethodImplAttributes.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <Type Name="MethodImplAttributes" FullName="System.Reflection.MethodImplAttributes">
3   <TypeSignature Maintainer="auto" Language="C#" Value="public enum MethodImplAttributes" />
4   <TypeSignature Language="ILAsm" Value=".class public auto ansi serializable sealed MethodImplAttributes extends System.Enum" />
5   <AssemblyInfo>
6     <AssemblyName>mscorlib</AssemblyName>
7     <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
8     <AssemblyVersion>1.0.5000.0</AssemblyVersion>
9     <AssemblyVersion>2.0.0.0</AssemblyVersion>
10     <AssemblyVersion>4.0.0.0</AssemblyVersion>
11   </AssemblyInfo>
12   <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
13   <Base>
14     <BaseTypeName>System.Enum</BaseTypeName>
15   </Base>
16   <Attributes>
17     <Attribute>
18       <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
19     </Attribute>
20   </Attributes>
21   <Docs>
22     <remarks>
23       <attribution license="cc4" from="Microsoft" modified="false" />
24       <para>The attributes are combined using the bitwise OR operation as follows: </para>
25       <para>Code implementation masks: </para>
26       <list type="bullet">
27         <item>
28           <para>CodeTypeMask </para>
29         </item>
30         <item>
31           <para>IL  </para>
32         </item>
33         <item>
34           <para>Native </para>
35         </item>
36         <item>
37           <para>OPTIL </para>
38         </item>
39         <item>
40           <para>Runtime </para>
41         </item>
42       </list>
43       <para>Managed masks: </para>
44       <list type="bullet">
45         <item>
46           <para>ManagedMask </para>
47         </item>
48         <item>
49           <para>Unmanaged </para>
50         </item>
51         <item>
52           <para>Managed </para>
53         </item>
54       </list>
55       <para>Implementation information and interop masks: </para>
56       <list type="bullet">
57         <item>
58           <para>ForwardRef </para>
59         </item>
60         <item>
61           <para>PreserveSig </para>
62         </item>
63         <item>
64           <para>InternalCall </para>
65         </item>
66         <item>
67           <para>Synchronized </para>
68         </item>
69         <item>
70           <para>NoInlining </para>
71         </item>
72         <item>
73           <para>NoOptimization </para>
74         </item>
75         <item>
76           <para>MaxMethodImplVal </para>
77         </item>
78       </list>
79       <block subset="none" type="note">
80         <para>Locking on the instance or on the type, as with the <see cref="F:System.Reflection.MethodImplAttributes.Synchronized" /> flag, is not recommended for public types, because code other than your own can take locks on public types and instances. This might cause deadlocks or other synchronization problems.</para>
81       </block>
82     </remarks>
83     <summary>
84       <attribution license="cc4" from="Microsoft" modified="false" />
85       <para>Specifies flags for the attributes of a method implementation.</para>
86     </summary>
87   </Docs>
88   <Members>
89     <Member MemberName="AggressiveInlining">
90       <MemberSignature Language="C#" Value="AggressiveInlining" />
91       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes AggressiveInlining = int32(256)" />
92       <MemberType>Field</MemberType>
93       <AssemblyInfo>
94         <AssemblyVersion>4.0.0.0</AssemblyVersion>
95       </AssemblyInfo>
96       <ReturnValue>
97         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
98       </ReturnValue>
99       <Docs>
100         <summary>
101           <attribution license="cc4" from="Microsoft" modified="false" />
102           <para>Specifies that the method should be inlined wherever possible.</para>
103         </summary>
104       </Docs>
105     </Member>
106     <Member MemberName="CodeTypeMask">
107       <MemberSignature Language="C#" Value="CodeTypeMask" />
108       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes CodeTypeMask = int32(3)" />
109       <MemberType>Field</MemberType>
110       <AssemblyInfo>
111         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
112         <AssemblyVersion>2.0.0.0</AssemblyVersion>
113         <AssemblyVersion>4.0.0.0</AssemblyVersion>
114       </AssemblyInfo>
115       <ReturnValue>
116         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
117       </ReturnValue>
118       <Parameters />
119       <Docs>
120         <remarks>To be added</remarks>
121         <summary>
122           <attribution license="cc4" from="Microsoft" modified="false" />
123           <para>Specifies flags about code type.</para>
124         </summary>
125       </Docs>
126     </Member>
127     <Member MemberName="ForwardRef">
128       <MemberSignature Language="C#" Value="ForwardRef" />
129       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes ForwardRef = int32(16)" />
130       <MemberType>Field</MemberType>
131       <AssemblyInfo>
132         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
133         <AssemblyVersion>2.0.0.0</AssemblyVersion>
134         <AssemblyVersion>4.0.0.0</AssemblyVersion>
135       </AssemblyInfo>
136       <ReturnValue>
137         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
138       </ReturnValue>
139       <Parameters />
140       <Docs>
141         <remarks>To be added</remarks>
142         <summary>
143           <attribution license="cc4" from="Microsoft" modified="false" />
144           <para>Specifies that the method is not defined.</para>
145         </summary>
146       </Docs>
147     </Member>
148     <Member MemberName="IL">
149       <MemberSignature Language="C#" Value="IL" />
150       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes IL = int32(0)" />
151       <MemberType>Field</MemberType>
152       <AssemblyInfo>
153         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
154         <AssemblyVersion>2.0.0.0</AssemblyVersion>
155         <AssemblyVersion>4.0.0.0</AssemblyVersion>
156       </AssemblyInfo>
157       <ReturnValue>
158         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
159       </ReturnValue>
160       <Parameters />
161       <Docs>
162         <remarks>To be added</remarks>
163         <summary>
164           <attribution license="cc4" from="Microsoft" modified="false" />
165           <para>Specifies that the method implementation is in Microsoft intermediate language (MSIL).</para>
166         </summary>
167       </Docs>
168     </Member>
169     <Member MemberName="InternalCall">
170       <MemberSignature Language="C#" Value="InternalCall" />
171       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes InternalCall = int32(4096)" />
172       <MemberType>Field</MemberType>
173       <AssemblyInfo>
174         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
175         <AssemblyVersion>2.0.0.0</AssemblyVersion>
176         <AssemblyVersion>4.0.0.0</AssemblyVersion>
177       </AssemblyInfo>
178       <ReturnValue>
179         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
180       </ReturnValue>
181       <Parameters />
182       <Docs>
183         <remarks>To be added</remarks>
184         <summary>
185           <attribution license="cc4" from="Microsoft" modified="false" />
186           <para>Specifies an internal call.</para>
187         </summary>
188       </Docs>
189     </Member>
190     <Member MemberName="Managed">
191       <MemberSignature Language="C#" Value="Managed" />
192       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes Managed = int32(0)" />
193       <MemberType>Field</MemberType>
194       <AssemblyInfo>
195         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
196         <AssemblyVersion>2.0.0.0</AssemblyVersion>
197         <AssemblyVersion>4.0.0.0</AssemblyVersion>
198       </AssemblyInfo>
199       <ReturnValue>
200         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
201       </ReturnValue>
202       <Parameters />
203       <Docs>
204         <remarks>To be added</remarks>
205         <summary>
206           <attribution license="cc4" from="Microsoft" modified="false" />
207           <para>Specifies that the method is implemented in managed code. </para>
208         </summary>
209       </Docs>
210     </Member>
211     <Member MemberName="ManagedMask">
212       <MemberSignature Language="C#" Value="ManagedMask" />
213       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes ManagedMask = int32(4)" />
214       <MemberType>Field</MemberType>
215       <AssemblyInfo>
216         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
217         <AssemblyVersion>2.0.0.0</AssemblyVersion>
218         <AssemblyVersion>4.0.0.0</AssemblyVersion>
219       </AssemblyInfo>
220       <ReturnValue>
221         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
222       </ReturnValue>
223       <Parameters />
224       <Docs>
225         <remarks>To be added</remarks>
226         <summary>
227           <attribution license="cc4" from="Microsoft" modified="false" />
228           <para>Specifies whether the method is implemented in managed or unmanaged code.</para>
229         </summary>
230       </Docs>
231     </Member>
232     <Member MemberName="MaxMethodImplVal">
233       <MemberSignature Language="C#" Value="MaxMethodImplVal" />
234       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes MaxMethodImplVal = int32(65535)" />
235       <MemberType>Field</MemberType>
236       <AssemblyInfo>
237         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
238         <AssemblyVersion>2.0.0.0</AssemblyVersion>
239         <AssemblyVersion>4.0.0.0</AssemblyVersion>
240       </AssemblyInfo>
241       <ReturnValue>
242         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
243       </ReturnValue>
244       <Parameters />
245       <Docs>
246         <remarks>To be added</remarks>
247         <summary>
248           <attribution license="cc4" from="Microsoft" modified="false" />
249           <para>Specifies a range check value.</para>
250         </summary>
251       </Docs>
252     </Member>
253     <Member MemberName="Native">
254       <MemberSignature Language="C#" Value="Native" />
255       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes Native = int32(1)" />
256       <MemberType>Field</MemberType>
257       <AssemblyInfo>
258         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
259         <AssemblyVersion>2.0.0.0</AssemblyVersion>
260         <AssemblyVersion>4.0.0.0</AssemblyVersion>
261       </AssemblyInfo>
262       <ReturnValue>
263         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
264       </ReturnValue>
265       <Parameters />
266       <Docs>
267         <remarks>To be added</remarks>
268         <summary>
269           <attribution license="cc4" from="Microsoft" modified="false" />
270           <para>Specifies that the method implementation is native.</para>
271         </summary>
272       </Docs>
273     </Member>
274     <Member MemberName="NoInlining">
275       <MemberSignature Language="C#" Value="NoInlining" />
276       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes NoInlining = int32(8)" />
277       <MemberType>Field</MemberType>
278       <AssemblyInfo>
279         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
280         <AssemblyVersion>2.0.0.0</AssemblyVersion>
281         <AssemblyVersion>4.0.0.0</AssemblyVersion>
282       </AssemblyInfo>
283       <ReturnValue>
284         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
285       </ReturnValue>
286       <Parameters />
287       <Docs>
288         <remarks>To be added</remarks>
289         <summary>
290           <attribution license="cc4" from="Microsoft" modified="false" />
291           <para>Specifies that the method cannot be inlined.</para>
292         </summary>
293       </Docs>
294     </Member>
295     <Member MemberName="NoOptimization">
296       <MemberSignature Language="C#" Value="NoOptimization" />
297       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes NoOptimization = int32(64)" />
298       <MemberType>Field</MemberType>
299       <AssemblyInfo>
300         <AssemblyVersion>2.0.0.0</AssemblyVersion>
301         <AssemblyVersion>4.0.0.0</AssemblyVersion>
302       </AssemblyInfo>
303       <ReturnValue>
304         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
305       </ReturnValue>
306       <Docs>
307         <summary>
308           <attribution license="cc4" from="Microsoft" modified="false" />
309           <para>Specifies that the method is not optimized by the just-in-time (JIT) compiler or by native code generation (see <format type="text/html"><a href="44bf97aa-a9a4-4eba-9a0d-cfaa6fc53a66">Ngen.exe</a></format>) when debugging possible code generation problems.</para>
310         </summary>
311       </Docs>
312     </Member>
313     <Member MemberName="OPTIL">
314       <MemberSignature Language="C#" Value="OPTIL" />
315       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes OPTIL = int32(2)" />
316       <MemberType>Field</MemberType>
317       <AssemblyInfo>
318         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
319         <AssemblyVersion>2.0.0.0</AssemblyVersion>
320         <AssemblyVersion>4.0.0.0</AssemblyVersion>
321       </AssemblyInfo>
322       <ReturnValue>
323         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
324       </ReturnValue>
325       <Parameters />
326       <Docs>
327         <remarks>To be added</remarks>
328         <summary>
329           <attribution license="cc4" from="Microsoft" modified="false" />
330           <para>Specifies that the method implementation is in Optimized Intermediate Language (OPTIL).</para>
331         </summary>
332       </Docs>
333     </Member>
334     <Member MemberName="PreserveSig">
335       <MemberSignature Language="C#" Value="PreserveSig" />
336       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes PreserveSig = int32(128)" />
337       <MemberType>Field</MemberType>
338       <AssemblyInfo>
339         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
340         <AssemblyVersion>2.0.0.0</AssemblyVersion>
341         <AssemblyVersion>4.0.0.0</AssemblyVersion>
342       </AssemblyInfo>
343       <ReturnValue>
344         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
345       </ReturnValue>
346       <Parameters />
347       <Docs>
348         <remarks>To be added</remarks>
349         <summary>
350           <attribution license="cc4" from="Microsoft" modified="false" />
351           <para>Specifies that the method signature is exported exactly as declared.</para>
352         </summary>
353       </Docs>
354     </Member>
355     <Member MemberName="Runtime">
356       <MemberSignature Language="C#" Value="Runtime" />
357       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes Runtime = int32(3)" />
358       <MemberType>Field</MemberType>
359       <AssemblyInfo>
360         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
361         <AssemblyVersion>2.0.0.0</AssemblyVersion>
362         <AssemblyVersion>4.0.0.0</AssemblyVersion>
363       </AssemblyInfo>
364       <ReturnValue>
365         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
366       </ReturnValue>
367       <Parameters />
368       <Docs>
369         <remarks>To be added</remarks>
370         <summary>
371           <attribution license="cc4" from="Microsoft" modified="false" />
372           <para>Specifies that the method implementation is provided by the runtime.</para>
373         </summary>
374       </Docs>
375     </Member>
376     <Member MemberName="Synchronized">
377       <MemberSignature Language="C#" Value="Synchronized" />
378       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes Synchronized = int32(32)" />
379       <MemberType>Field</MemberType>
380       <AssemblyInfo>
381         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
382         <AssemblyVersion>2.0.0.0</AssemblyVersion>
383         <AssemblyVersion>4.0.0.0</AssemblyVersion>
384       </AssemblyInfo>
385       <ReturnValue>
386         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
387       </ReturnValue>
388       <Parameters />
389       <Docs>
390         <remarks>To be added</remarks>
391         <summary>
392           <attribution license="cc4" from="Microsoft" modified="false" />
393           <para>Specifies that the method is single-threaded through the body. Static methods (Shared in Visual Basic) lock on the type, whereas instance methods lock on the instance. You can also use the C# <format type="text/html"><a href="656DA1A4-707E-4EF6-9C6E-6D13B646AF42">lock statement</a></format> or the Visual Basic <format type="text/html"><a href="14501703-298f-4d43-b139-c4b6366af176">SyncLock statement</a></format> for this purpose. </para>
394         </summary>
395       </Docs>
396     </Member>
397     <Member MemberName="Unmanaged">
398       <MemberSignature Language="C#" Value="Unmanaged" />
399       <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Reflection.MethodImplAttributes Unmanaged = int32(4)" />
400       <MemberType>Field</MemberType>
401       <AssemblyInfo>
402         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
403         <AssemblyVersion>2.0.0.0</AssemblyVersion>
404         <AssemblyVersion>4.0.0.0</AssemblyVersion>
405       </AssemblyInfo>
406       <ReturnValue>
407         <ReturnType>System.Reflection.MethodImplAttributes</ReturnType>
408       </ReturnValue>
409       <Parameters />
410       <Docs>
411         <remarks>To be added</remarks>
412         <summary>
413           <attribution license="cc4" from="Microsoft" modified="false" />
414           <para>Specifies that the method is implemented in unmanaged code.</para>
415         </summary>
416       </Docs>
417     </Member>
418   </Members>
419 </Type>