[jit] Fix the saving of the 'cfg->ret_var_set' flag when inlining, it was set to...
[mono.git] / docs / sources / mono-api-class.html
1 <h2>Class Operations</h2>
2
3         <p>The operations on <code>MonoClass*</code> allow you to
4         query a number of properties of a .NET class from the C API.
5
6         <p>This page contains information
7         for <a href="#class-getting">how to obtain a MonoClass*</a>,
8         how to <a href="#class-work">probe for different
9         features of a MonoClass*</a> and APIs
10         to <a href="#class-members">access class members</a> and 
11         <a href="#class-fields">access fields</a>.   To access
12         methods, see the <a href="mono-api-methods.html">method
13         documentation API</a>.
14
15 <a name="class-getting"></a>
16 <h3>Getting a MonoClass</h3>
17
18         <p>You typically would obtain a <code>MonoClass*</code>
19         pointer by using a combination of the <code>MonoImage*</code>
20         where the type is located, the namespace and name using the
21         <code><a href="api:mono_class_from_name">mono_class_from_name</a></code>
22         or
23         the <code><a href="api:mono_class_from_name_case">mono_class_from_name_case</a></code>
24         APIs or by using
25         the <code><a href="api:mono_class_from_typeref">mono_class_from_typeref</a></code>
26         or <code><a href="api:mono_class_from_typeref">mono_class_from_typeref_checked</a></code>
27         methods.
28
29         <p>For low-level access, you can get the <code>MonoClass
30         *</code> from an image and an ECMA type token relative to
31         the <code>MonoImage*</code> by using <a href="api:mono_class_get">mono_class_get</a>.
32
33         
34 <h4><a name="api:mono_class_get">mono_class_get</a></h4>
35 <h4><a name="api:mono_class_from_mono_type">mono_class_from_mono_type</a></h4>
36 <h4><a name="api:mono_class_from_name">mono_class_from_name</a></h4>
37 <h4><a name="api:mono_class_from_name_case">mono_class_from_name_case</a></h4>
38 <h4><a name="api:mono_class_from_typeref">mono_class_from_typeref</a></h4>
39 <h4><a name="api:mono_class_from_typeref_checked">mono_class_from_typeref_checked</a></h4>
40 <h4><a name="api:mono_class_from_generic_parameter">mono_class_from_generic_parameter</a></h4>
41
42 <h3>Working with a MonoClass</h3>
43
44 <h4><a name="api:mono_class_array_element_size">mono_class_array_element_size</a></h4>
45 <h4><a name="api:mono_class_data_size">mono_class_data_size</a></h4>
46 <h4><a name="api:mono_class_enum_basetype">mono_class_enum_basetype</a></h4>
47 <h4><a name="api:mono_class_get_byref_type">mono_class_get_byref_type</a></h4>
48 <h4><a name="api:mono_class_get_element_class">mono_class_get_element_class</a></h4>
49 <h4><a name="api:mono_class_get_event_token">mono_class_get_event_token</a></h4>
50 <h4><a name="api:mono_class_get_field">mono_class_get_field</a></h4>
51 <h4><a name="api:mono_class_get_field_token">mono_class_get_field_token</a></h4>
52 <h4><a name="api:mono_class_get_flags">mono_class_get_flags</a></h4>
53 <h4><a name="api:mono_class_get_full">mono_class_get_full</a></h4>
54 <h4><a name="api:mono_class_get_image">mono_class_get_image</a></h4>
55 <h4><a name="api:mono_class_get_interfaces">mono_class_get_interfaces</a></h4>
56 <h4><a name="api:mono_class_get_name">mono_class_get_name</a></h4>
57 <h4><a name="api:mono_class_get_namespace">mono_class_get_namespace</a></h4>
58 <h4><a name="api:mono_class_get_nesting_type">mono_class_get_nesting_type</a></h4>
59 <h4><a name="api:mono_class_get_parent">mono_class_get_parent</a></h4>
60 <h4><a name="api:mono_class_get_property_token">mono_class_get_property_token</a></h4>
61 <h4><a name="api:mono_class_get_rank">mono_class_get_rank</a></h4>
62 <h4><a name="api:mono_class_get_type">mono_class_get_type</a></h4>
63 <h4><a name="api:mono_class_get_type_token">mono_class_get_type_token</a></h4>
64 <h4><a name="api:mono_class_implements_interface">mono_class_implements_interface</a></h4>
65 <h4><a name="api:mono_class_inflate_generic_method">mono_class_inflate_generic_method</a></h4>
66 <h4><a name="api:mono_class_inflate_generic_type">mono_class_inflate_generic_type</a></h4>
67 <h4><a name="api:mono_class_init">mono_class_init</a></h4>
68 <h4><a name="api:mono_class_instance_size">mono_class_instance_size</a></h4>
69 <h4><a name="api:mono_class_is_assignable_from">mono_class_is_assignable_from</a></h4>
70 <h4><a name="api:mono_class_is_delegate">mono_class_is_delegate</a></h4>
71 <h4><a name="api:mono_class_is_enum">mono_class_is_enum</a></h4>
72 <h4><a name="api:mono_class_is_subclass_of">mono_class_is_subclass_of</a></h4>
73 <h4><a name="api:mono_class_is_valuetype">mono_class_is_valuetype</a></h4>
74 <h4><a name="api:mono_class_min_align">mono_class_min_align</a></h4>
75 <h4><a name="api:mono_class_name_from_token">mono_class_name_from_token</a></h4> 
76 <h4><a name="api:mono_class_num_events">mono_class_num_events</a></h4>
77 <h4><a name="api:mono_class_num_fields">mono_class_num_fields</a></h4>
78 <h4><a name="api:mono_class_num_methods">mono_class_num_methods</a></h4>
79 <h4><a name="api:mono_class_num_properties">mono_class_num_properties</a></h4>
80 <h4><a name="api:mono_class_value_size">mono_class_value_size</a></h4>
81 <h4><a name="api:mono_class_vtable">mono_class_vtable</a></h4>
82
83 <a name="class-members"></a>
84 <h3>Getting Class Members</h3>
85
86 <h4><a name="api:mono_class_get_fields">mono_class_get_fields</a></h4>
87 <h4><a name="api:mono_class_get_field_from_name">mono_class_get_field_from_name</a></h4>
88 <h4><a name="api:mono_class_get_methods">mono_class_get_methods</a></h4>
89 <h4><a name="api:mono_class_get_method_from_name">mono_class_get_method_from_name</a></h4>
90 <h4><a name="api:mono_class_get_method_from_name_flags">mono_class_get_method_from_name_flags</a></h4> 
91 <h4><a name="api:mono_class_get_nested_types">mono_class_get_nested_types</a></h4>
92 <h4><a name="api:mono_class_get_properties">mono_class_get_properties</a></h4>
93 <h4><a name="api:mono_class_get_property_from_name">mono_class_get_property_from_name</a></h4>
94 <h4><a name="api:mono_class_get_events">mono_class_get_events</a></h4>
95
96 <a name="class-fields"></a>
97 <h3>Fields</h3>
98
99 <h4><a name="api:mono_field_get_data">mono_field_get_data</a></h4>
100 <h4><a name="api:mono_field_get_offset">mono_field_get_offset</a></h4>
101 <h4><a name="api:mono_field_full_name">mono_field_full_name</a></h4>
102
103 <h3>Method Accessibility</h3>
104
105 <h4><a name="api:mono_method_can_access_field">mono_method_can_access_field</a></h4>
106 <h4><a name="api:mono_method_can_access_method">mono_method_can_access_method</a></h4>
107
108 <p>