24using System.Collections.Generic;
29 internal abstract class ParameterInfo : ICustomAttributeProvider
40 public sealed override bool Equals(
object obj)
43 return other !=
null && other.Member == Member && other.Position == Position;
46 public sealed override int GetHashCode()
48 return Member.GetHashCode() * 1777 + Position;
53 return ReferenceEquals(p1, p2) || (!ReferenceEquals(p1,
null) && p1.Equals(p2));
61 public abstract string Name {
get; }
63 public abstract Type ParameterType {
get; }
65 public abstract ParameterAttributes Attributes {
get; }
67 public abstract int Position {
get; }
69 public abstract object RawDefaultValue {
get; }
71 public abstract CustomModifiers __GetCustomModifiers();
73 public abstract bool __TryGetFieldMarshal(out FieldMarshal fieldMarshal);
77 public abstract int MetadataToken {
get; }
81 public Type[] GetOptionalCustomModifiers()
83 return __GetCustomModifiers().GetOptional();
86 public Type[] GetRequiredCustomModifiers()
88 return __GetCustomModifiers().GetRequired();
93 get {
return (Attributes & ParameterAttributes.In) != 0; }
98 get {
return (Attributes & ParameterAttributes.Out) != 0; }
103 get {
return (Attributes & ParameterAttributes.Lcid) != 0; }
108 get {
return (Attributes & ParameterAttributes.Retval) != 0; }
111 public bool IsOptional
113 get {
return (Attributes & ParameterAttributes.Optional) != 0; }
116 public bool HasDefaultValue
118 get {
return (Attributes & ParameterAttributes.HasDefault) != 0; }
121 public bool IsDefined(
Type attributeType,
bool inherit)
123 return CustomAttributeData.__GetCustomAttributes(
this, attributeType, inherit).Count != 0;
126 public IList<CustomAttributeData> __GetCustomAttributes(
Type attributeType,
bool inherit)
128 return CustomAttributeData.__GetCustomAttributes(
this, attributeType, inherit);
131 public IList<CustomAttributeData> GetCustomAttributesData()
133 return CustomAttributeData.GetCustomAttributes(
this);
136 public IEnumerable<CustomAttributeData> CustomAttributes
138 get {
return GetCustomAttributesData(); }
145 readonly MemberInfo member;
146 readonly ParameterInfo forward;
155 this.member = member;
156 this.forward = forward;
161 get {
return forward.Name; }
166 get {
return forward.ParameterType; }
171 get {
return forward.Attributes; }
176 get {
return forward.Position; }
181 get {
return forward.RawDefaultValue; }
186 return forward.__GetCustomModifiers();
191 return forward.__TryGetFieldMarshal(out fieldMarshal);
196 get {
return member; }
201 get {
return forward.MetadataToken; }
204 public override Module Module
206 get {
return member.Module; }
IKVM.Reflection.Module Module
IKVM.Reflection.Type Type
IKVM.Reflection.MemberInfo MemberInfo
IKVM.Reflection.ParameterInfo ParameterInfo
global::java.lang.invoke.LambdaForm.Name Name
override object RawDefaultValue
override bool __TryGetFieldMarshal(out FieldMarshal fieldMarshal)
override MemberInfo Member
override ParameterAttributes Attributes
override int MetadataToken
override CustomModifiers __GetCustomModifiers()
override Type ParameterType