final class · System.Reflection
PropertyInfo
public final class PropertyInfo : MemberInfo
A property: its type, and its value through its accessors.
- Kind
- final class
- Namespace
- System.Reflection
- Assembly
- System.Core
- Access
- public, final
- Source file
Reflection.ant
Inheritance
- Base classes
-
AnyMemberInfoPropertyInfo
Properties
Methods
Private and internal members (5)
Inherited members (11)
GetCustomAttributesmethod from MemberInfoGetCustomAttributesmethod from MemberInfoIsDefinedmethod from MemberInfoNameproperty from MemberInfoDeclaringTypeproperty from MemberInfoIsPublicproperty from MemberInfoIsStaticproperty from MemberInfoGetTypemethod from AnyUndescribedmethod from AnyHashmethod from Anydestroymethod from Any
Source
PropertyInfo as Antril, decompiled from its Larva HIR.
// System.Reflection.PropertyInfo — System.Core (decompiled from Larva HIR)
import System;
into namespace System.Reflection
{
/// A property: its type, and its value through its accessors.
public final class PropertyInfo : MemberInfo
{
readonly Type propertyType;
readonly i32 getter;
readonly i32 setter;
internal:
new(Type declaring, str name, i32 flags, TypeDescriber describer, i32 index, Type propertyType, i32 getter, i32 setter) : base(declaring, name, flags, describer, index)
{
this.propertyType = propertyType;
this.getter = getter;
this.setter = setter;
}
override AttributeKey() : i32 => 3000000 + Index;
public:
GetValue(any? target) : any?
{
if (getter < 0)
throw new NotSupportedError(Name + " has no getter");
return Describer.Invoke(getter, target, []);
}
SetValue(any? target, any? value)
{
if (setter < 0)
throw new NotSupportedError(Name + " has no setter");
Describer.Invoke(setter, target, [value]);
}
override ToString() : str => propertyType.FullName + " " + Name;
Type PropertyType
{
get => propertyType;
}
bool CanRead
{
get => getter >= 0;
}
bool CanWrite
{
get => setter >= 0;
}
}
}