Class SpecializedMember
- Namespace
- ICSharpCode.Decompiler.TypeSystem.Implementation
- Assembly
- ICSharpCode.Decompiler.dll
Represents a SpecializedMember (a member on which type substitution has been performed).
public abstract class SpecializedMember : IMember, IEntity, ISymbol, ICompilationProvider, INamedElement
- Inheritance
-
SpecializedMember
- Implements
- Derived
- Inherited Members
- Extension Methods
Constructors
SpecializedMember(IMember)
protected SpecializedMember(IMember memberDefinition)
Parameters
memberDefinition
IMember
Fields
baseMember
protected readonly IMember baseMember
Field Value
Properties
Accessibility
Gets the accessibility of this entity.
public Accessibility Accessibility { get; }
Property Value
Compilation
Gets the parent compilation. This property never returns null.
public ICompilation Compilation { get; }
Property Value
DeclaringType
Gets/Sets the declaring type (incl. type arguments, if any). If this is not a specialized member, the value returned is equal to DeclaringTypeDefinition.
public IType DeclaringType { get; }
Property Value
DeclaringTypeDefinition
Gets the declaring class. For members, this is the class that contains the member. For nested classes, this is the outer class. For top-level entities, this property returns null.
public ITypeDefinition DeclaringTypeDefinition { get; }
Property Value
ExplicitlyImplementedInterfaceMembers
public IEnumerable<IMember> ExplicitlyImplementedInterfaceMembers { get; }
Property Value
FullName
public string FullName { get; }
Property Value
IsAbstract
public bool IsAbstract { get; }
Property Value
IsExplicitInterfaceImplementation
Gets whether this member is explicitly implementing an interface.
public bool IsExplicitInterfaceImplementation { get; }
Property Value
IsOverridable
Gets if the member can be overridden. Returns true when the member is "abstract", "virtual" or "override" but not "sealed".
public bool IsOverridable { get; }
Property Value
IsOverride
Gets whether this member is overriding another member.
public bool IsOverride { get; }
Property Value
IsSealed
public bool IsSealed { get; }
Property Value
IsStatic
Gets whether this entity is static. Returns true if either the 'static' or the 'const' modifier is set.
public bool IsStatic { get; }
Property Value
IsVirtual
Gets if the member is virtual. Is true only if the "virtual" modifier was used, but non-virtual members can be overridden, too; if they are abstract or overriding a method.
public bool IsVirtual { get; }
Property Value
MemberDefinition
Gets the original member definition for this member.
Returns this
if this is not a specialized member.
Specialized members are the result of overload resolution with type substitution.
public IMember MemberDefinition { get; }
Property Value
MetadataToken
public EntityHandle MetadataToken { get; }
Property Value
Name
Gets the short name of the entity.
public string Name { get; }
Property Value
Namespace
Gets the full name of the namespace containing this entity.
public string Namespace { get; }
Property Value
ParentModule
The module in which this entity is defined. May return null, if the IEntity was not created from a module.
public IModule ParentModule { get; }
Property Value
ReflectionName
public string ReflectionName { get; }
Property Value
ReturnType
Gets the return type of this member.
This property never returns null
.
public IType ReturnType { get; protected set; }
Property Value
Substitution
Gets the substitution belonging to this specialized member.
public TypeParameterSubstitution Substitution { get; }
Property Value
SymbolKind
This property returns an enum specifying which kind of symbol this is (which derived interfaces of ISymbol are implemented)
public SymbolKind SymbolKind { get; }
Property Value
Methods
AddSubstitution(TypeParameterSubstitution)
Performs a substitution. This method may only be called by constructors in derived classes.
protected void AddSubstitution(TypeParameterSubstitution newSubstitution)
Parameters
newSubstitution
TypeParameterSubstitution
Equals(IMember, TypeVisitor)
Gets whether the members are considered equal when applying the specified type normalization.
public virtual bool Equals(IMember obj, TypeVisitor typeNormalization)
Parameters
obj
IMembertypeNormalization
TypeVisitor
Returns
Equals(object)
public override bool Equals(object obj)
Parameters
obj
object
Returns
GetHashCode()
public override int GetHashCode()
Returns
Specialize(TypeParameterSubstitution)
Specializes this member with the given substitution. If this member is already specialized, the new substitution is composed with the existing substition.
public virtual IMember Specialize(TypeParameterSubstitution newSubstitution)
Parameters
newSubstitution
TypeParameterSubstitution
Returns
ToString()
public override string ToString()