base class · System.Reflection
MethodBase
public base class MethodBase : MemberInfo
What methods and constructors have: parameters.
- Tipo
- base class
- Espacio de nombres
- System.Reflection
- Ensamblado
- System.Core
- Acceso
- public, abstract
- Archivo fuente
Reflection.ant
Herencia
- Clases base
-
AnyMemberInfoMethodBase - Tipos derivados
-
ConstructorInfoMethodInfo
Métodos
GetParameters() : ParameterInfo[]
#
Miembros privados e internos (6)
readonly ParameterInfo[] parameters
#
new(Type declaring, str name, i32 flags, TypeDescriber describer, i32 index, ParameterInfo[] parameters)
#
Whether the parameters are of types.
Whether the values can be the arguments.
Check(any?[] values)
#
Miembros heredados (12)
GetCustomAttributesmétodo de MemberInfoGetCustomAttributesmétodo de MemberInfoIsDefinedmétodo de MemberInfoToStringmétodo de MemberInfoNamepropiedad de MemberInfoDeclaringTypepropiedad de MemberInfoIsPublicpropiedad de MemberInfoIsStaticpropiedad de MemberInfoGetTypemétodo de AnyUndescribedmétodo de AnyHashmétodo de Anydestroymétodo de Any
Código fuente
MethodBase en Antril, descompilado a partir de su Larva HIR.
// System.Reflection.MethodBase — System.Core (decompiled from Larva HIR)
import System;
into namespace System.Reflection
{
/// What methods and constructors have: parameters.
public base class MethodBase : MemberInfo
{
readonly ParameterInfo[] parameters;
internal:
new(Type declaring, str name, i32 flags, TypeDescriber describer, i32 index, ParameterInfo[] parameters) : base(declaring, name, flags, describer, index)
{
this.parameters = parameters;
{
ParameterInfo[] _items0 = parameters;
i32 _index1 = 0;
loop (_index1 < _items0.Length)
{
ParameterInfo parameter = _items0[_index1];
parameter.member = this;
_index1++;
}
}
}
override AttributeKey() : i32 => 2000000 + Index;
/// Whether the parameters are of `types`.
Takes(Type[] types) : bool
{
if (types.Length != parameters.Length)
return false;
loop (i32 i = 0..types.Length)
{
if (types[i] != parameters[i].ParameterType)
return false;
}
return true;
}
/// Whether the values can be the arguments.
Accepts(any?[] values) : bool
{
if (values.Length != parameters.Length)
return false;
loop (i32 i = 0..values.Length)
{
if (values[i] is any value && !parameters[i].ParameterType.IsInstanceOfType(value) && !parameters[i].ParameterType.IsNullable)
return false;
}
return true;
}
Check(any?[] values)
{
if (values.Length != parameters.Length)
throw new ArgumentError(Name + " takes " + parameters.Length + " argument(s), not " + values.Length);
}
public:
GetParameters() : ParameterInfo[] => parameters;
}
}