return NULL;
}
+
+/**
+ * mono_class_is_delegate
+ * @klass: the MonoClass to act on
+ *
+ * Returns: true if the MonoClass represents a System.Delegate.
+ */
+mono_bool
+mono_class_is_delegate (MonoClass *klass)
+{
+ return klass->delegate;
+}
+
+/**
+ * mono_class_implements_interface
+ * @klass: The MonoClass to act on
+ * @interface: The interface to check if @klass implements.
+ *
+ * Returns: true if @klass implements @interface.
+ */
+mono_bool
+mono_class_implements_interface (MonoClass* klass, MonoClass* interface)
+{
+ return mono_class_is_assignable_from (interface, klass);
+}
+
/**
* mono_field_get_name:
* @field: the MonoClassField to act on
MONO_API MonoClass*
mono_class_get_nested_types (MonoClass* klass, void **iter);
+MONO_API mono_bool
+mono_class_is_delegate (MonoClass* klass);
+
+MONO_API mono_bool
+mono_class_implements_interface (MonoClass* klass, MonoClass* interface);
+
/* MonoClassField accessors */
MONO_API const char*
mono_field_get_name (MonoClassField *field);
return sig->hasthis;
}
+/**
+ * mono_signature_param_is_out
+ * @sig: the method signature inspected
+ * @param_num: the 0-based index of the inspected parameter
+ *
+ * Returns: #TRUE if the parameter is an out parameter, #FALSE
+ * otherwise.
+ */
+mono_bool
+mono_signature_param_is_out (MonoMethodSignature *sig, int param_num)
+{
+ g_assert (param_num >= 0 && param_num < sig->param_count);
+ return (sig->params [param_num]->attrs & PARAM_ATTRIBUTE_OUT) != 0;
+}
+
/**
* mono_signature_explicit_this:
* @sig: the method signature inspected
MONO_API mono_bool
mono_signature_explicit_this (MonoMethodSignature *sig);
+MONO_API mono_bool
+mono_signature_param_is_out (MonoMethodSignature *sig, int param_num);
+
MONO_API uint32_t mono_metadata_parse_typedef_or_ref (MonoImage *m,
const char *ptr,
const char **rptr);