Click or drag to resize

TypeRef Class

Represents a reference to an ITypeDecl (TypeDecl, TypeParameter, Alias) or an external TypeDefinition/Type.
Inheritance Hierarchy

Namespace:  Nova.CodeDOM
Assembly:  Nova.CodeDOM (in Nova.CodeDOM.dll) Version: 7.22.6858.39923
Syntax
C#
public class TypeRef : TypeRefBase

The TypeRef type exposes the following members.

Constructors
  NameDescription
Public methodTypeRef(Object)
Create a TypeRef from a constant value.
Public methodTypeRef(Type, Expression)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Public methodTypeRef(Type, Int32)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Public methodTypeRef(ITypeDecl, Expression)
Create a TypeRef from an ITypeDecl.
Public methodTypeRef(ITypeDecl, Int32)
Create a TypeRef from an ITypeDecl.
Protected methodTypeRef(Parser, CodeObject)
Default parsing constructor - does nothing except forward to base class.
Public methodTypeRef(TypeDefinition, Expression)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Public methodTypeRef(TypeDefinition, Int32)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Public methodTypeRef(TypeRef, Object)
Construct a TypeRef from the specified type and constant value.
Public methodTypeRef(Type, Boolean, Expression)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Public methodTypeRef(Type, Boolean, Int32)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Public methodTypeRef(Type, ListInt32, Int32)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Protected methodTypeRef(GenericParameter, Boolean, Int32)
Create a TypeRef from a GenericParameter.
Public methodTypeRef(ITypeDecl, Boolean, Expression)
Create a TypeRef from an ITypeDecl.
Public methodTypeRef(ITypeDecl, Boolean, Int32)
Create a TypeRef from an ITypeDecl.
Public methodTypeRef(ITypeDecl, ListInt32, Int32)
Create a TypeRef from an ITypeDecl.
Public methodTypeRef(TypeDefinition, Boolean, Expression)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Public methodTypeRef(TypeDefinition, Boolean, Int32)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Public methodTypeRef(TypeDefinition, ListInt32, Int32)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Public methodTypeRef(Type, ChildListExpression, ListInt32, Int32)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Protected methodTypeRef(GenericParameter, Boolean, ListInt32, Int32)
Create a TypeRef from a GenericParameter.
Public methodTypeRef(ITypeDecl, ChildListExpression, ListInt32, Int32)
Create a TypeRef from an ITypeDecl.
Public methodTypeRef(TypeDefinition, ChildListExpression, ListInt32, Int32)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Public methodTypeRef(Type, Boolean, ChildListExpression, ListInt32, Int32)
Create a TypeRef from a Type. If the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, use one of the TypeRef.Create() factory methods instead.
Public methodTypeRef(ITypeDecl, Boolean, ChildListExpression, ListInt32, Int32)
Create a TypeRef from an ITypeDecl.
Protected methodTypeRef(Parser, CodeObject, Boolean, Boolean, ParseFlags)
Construct a reference to a built-in type, nullable or pointer built-in type, or non-built-in nullable type.
Public methodTypeRef(TypeDefinition, Boolean, ChildListExpression, ListInt32, Int32)
Create a TypeRef from a TypeDefinition. To create a TypeRef from a GenericParameter, use one of the TypeRef.Create() factory methods, so it can create the appropriate OpenTypeParameterRef, or use a constructor of OpenTypeParameterRef.
Top
Properties
  NameDescription
Public property_AsString
This property is just to make debugging easier.
(Inherited from CodeObject.)
Public propertyAnnotations
Annotations (comments, attributes, directives, messages) associated with the current code object.
(Inherited from CodeObject.)
Public propertyArrayRanks
The array ranks of the type reference (if any).
(Inherited from TypeRefBase.)
Public propertyCategory
The descriptive category of the SymbolicRef.
(Overrides SymbolicRefCategory.)
Public propertyColumnNumber
The column number associated with the CodeObject (if any, 0 if none).
(Inherited from CodeObject.)
Public propertyComment
The comment for the code object (if any).
(Inherited from CodeObject.)
Public propertyDocComment
The documentation comment for the code object (if any).
(Inherited from CodeObject.)
Public propertyDontUseKeyword
True if the referenced type should display as a type name instead of a keyword if it's a primitive type.
(Inherited from TypeRefBase.)
Public propertyEOLComment
The End-Of-Line comment for the code object (if any).
(Inherited from CodeObject.)
Public propertyHasAnnotations
True if the code object has any annotations.
(Inherited from CodeObject.)
Public propertyHasArrayRanks
True if the type reference has any array ranks.
(Inherited from TypeRefBase.)
Public propertyHasAttributes
True if the code object has any attributes.
(Inherited from CodeObject.)
Public propertyHasComments
True if the code object has any comments of any kind.
(Inherited from CodeObject.)
Public propertyHasCompilerDirectives
True if the code object has any compiler directive annotations.
(Inherited from CodeObject.)
Public propertyHasDocComments
True if the code object has any documentation comments.
(Inherited from CodeObject.)
Public propertyHasEOLComments
True if the code object has any EOL comments.
(Inherited from CodeObject.)
Public propertyHasEOLOrPostAnnotations
True if the code object has any EOL or Postfix annotations.
(Inherited from CodeObject.)
Public propertyHasErrors
True if the code object has any error messages.
(Inherited from CodeObject.)
Public propertyHasFirstOnLineAnnotations
True if the code object has any annotations on separate lines.
(Inherited from CodeObject.)
Public propertyHasInfixComments
True if the code object has any Infix comments.
(Inherited from CodeObject.)
Public propertyHasMessages
True if the code object has any generated messages.
(Inherited from CodeObject.)
Public propertyHasNoIndentation
Determines if the code object has no indentation.
(Inherited from CodeObject.)
Public propertyHasNonEOLComments
True if the code object has any regular (non-doc) preceeding (non-EOL, non-Infix, non-Postfix) comments.
(Inherited from CodeObject.)
Public propertyHasParens
True if the expression is surrounded by parens.
(Inherited from Expression.)
Public propertyHasParensDefault
True if the expression should have parens by default.
(Inherited from Expression.)
Public propertyHasPostAnnotations
True if the code object has any postfix annotations.
(Inherited from CodeObject.)
Public propertyHasTerminator
Determines if the code object has a terminator character.
(Inherited from CodeObject.)
Public propertyHasTypeArguments
True if there are any type arguments.
(Inherited from TypeRefBase.)
Public propertyHiddenRef
Any hidden reference to another CodeObject.
(Inherited from CodeObject.)
Public propertyInfixComment
The infix comment for the code object (if any).
(Inherited from CodeObject.)
Public propertyIsAbstract
True if the referenced type is abstract.
Public propertyIsArray
True if the type reference is an array.
(Inherited from TypeRefBase.)
Public propertyIsBitFlagsEnum
True if the referenced type is a bit-flags enum.
Public propertyIsBuiltInType
True if the referenced type is a built-in type (has a keyword). The built-in types are: object, void, sbyte, byte, short, ushort, int, uint, long, ulong, char, bool, string, float, double, decimal
(Overrides TypeRefBaseIsBuiltInType.)
Public propertyIsBuiltInTypeOrArray
True if the referenced type is a built-in type or an array of a built-in type.
Public propertyIsClass
True if the referenced type is a class.
Public propertyIsConst
True if the referenced type has a constant value.
(Overrides ExpressionIsConst.)
Public propertyIsDelegateType
True if the referenced type is a delegate type.
(Overrides TypeRefBaseIsDelegateType.)
Public propertyIsDocCodeReference
Returns true if the TypeRefBase is a DocCodeRefBase reference to a code object, otherwise false.
(Inherited from TypeRefBase.)
Public propertyIsEndFirstOnLine
True if the closing paren or bracket is on a new line.
(Inherited from Expression.)
Public propertyIsEnum
True if the referenced type is an enum.
Public propertyIsFirstOnLine
Determines if the code object appears as the first item on a line.
(Inherited from CodeObject.)
Public propertyIsFirstOnLineDefault
True if the code object defaults to starting on a new line.
(Inherited from Expression.)
Public propertyIsFixedBufferType
True if the referenced type is a fixed buffer type.
(Overrides TypeRefBaseIsFixedBufferType.)
Public propertyIsGenerated
Determines if the code object is generated.
(Inherited from CodeObject.)
Public propertyIsGenericParameter
True if the referenced type is a generic type parameter.
Public propertyIsGenericType
True if the type is a generic type (meaning that either it or an enclosing type has type arguments).
Public propertyIsGroupingSet
Determines if the 'grouping' (has parens or braces) status has been set.
(Inherited from CodeObject.)
Public propertyIsInterface
True if the referenced type is an interface.
(Overrides TypeRefBaseIsInterface.)
Public propertyIsInternal
True if the referenced type has internal access.
(Overrides TypeRefBaseIsInternal.)
Public propertyIsNested
True if the referenced type is a nested type.
Public propertyIsNewLinesSet
Determines if the newline count has been set on the code object.
(Inherited from CodeObject.)
Public propertyIsNullableType
True if the referenced type is a nullable type.
(Overrides TypeRefBaseIsNullableType.)
Public propertyIsOrContainsNestedGenericType
True if the referenced type is a nested generic type, or if it (recursively) contains a nested generic type as a type argument.
Public propertyIsPartial
True if the referenced type is a partial type.
Public propertyIsPointer
True if the type reference is a pointer.
(Inherited from TypeRefBase.)
Public propertyIsPossibleDelegateType
True if the expression evaluates to a delegate, unresolved, or dynamic type or a TypeParameterRef.
(Inherited from Expression.)
Public propertyIsPrimitive
True if the type is Primitive. The Primitive Types are: sbyte, byte, short, ushort, int, uint, long, ulong, IntPtr, UIntPtr, char, bool, float, double. The following are NOT primitive types: object, void, string, decimal
(Overrides TypeRefBaseIsPrimitive.)
Public propertyIsPrivate
True if the referenced type has private access.
(Overrides TypeRefBaseIsPrivate.)
Public propertyIsProtected
True if the referenced type has protected access.
(Overrides TypeRefBaseIsProtected.)
Public propertyIsPublic
True if the referenced type has public access.
(Overrides TypeRefBaseIsPublic.)
Public propertyIsRenderable
True if the CodeObject is renderable.
(Inherited from CodeObject.)
Public propertyIsSingleLine
Determines if the code object only requires a single line for display.
(Inherited from TypeRefBase.)
Public propertyIsSingleLineDefault
True if the code object only requires a single line for display by default.
(Inherited from CodeObject.)
Public propertyIsStatic
True if the referenced type is static.
(Overrides TypeRefBaseIsStatic.)
Public propertyIsUserClass
True if the referenced type is a user-defined class (excludes 'object' and 'string').
Public propertyIsUserStruct
True if the referenced type is a user-defined struct (excludes primitive types including 'void' and 'decimal', and enums).
Public propertyIsValueType
True if the referenced type is a value type.
Public propertyLineNumber
The line number associated with the CodeObject (if any, 0 if none).
(Inherited from CodeObject.)
Public propertyName
The name of the TypeRef.
(Overrides SymbolicRefName.)
Public propertyNamespaceName
The associated Namespace name.
Public propertyNewLines
The number of newlines preceeding the object (0 to N).
(Inherited from CodeObject.)
Public propertyParent
The parent CodeObject.
(Inherited from TypeRefBase.)
Public propertyPointerCount
The number of pointer dereferences.
(Inherited from TypeRefBase.)
Public propertyPostfixComment
The postfix comment for the code object (if any).
(Inherited from CodeObject.)
Public propertyReference
The code object to which the SymbolicRef refers.
(Inherited from SymbolicRef.)
Public propertyTypeArgumentCount
The number of type arguments.
(Inherited from TypeRefBase.)
Public propertyTypeArguments
The type argument Expressions of the reference (if any).
(Inherited from TypeRefBase.)
Top
Methods
  NameDescription
Public methodAccept
Accept the specified visitor object for the current code object and it's children.
(Inherited from TypeRefBase.)
Public methodAcceptAnnotations(IVisitor)
Accept the specified visitor object for all regular (non-EOL, non-Infix, non-Postfix) annotations (comments, attributes, compiler directives).
(Inherited from CodeObject.)
Public methodAcceptAnnotations(IVisitor, AnnotationFlags)
Accept the specified visitor object for all specified Infix or Postfix annotations (comments, compiler directives).
(Inherited from CodeObject.)
Public methodAcceptEOLComments
Accept the specified visitor object for all EOL comments.
(Inherited from CodeObject.)
Public methodAcceptInfixComments
Accept the specified visitor object for all Infix comments.
(Inherited from CodeObject.)
Public methodAcceptInfixEOLComments
Accept the specified visitor object for all Infix EOL comments.
(Inherited from CodeObject.)
Public methodAssociateCommentWhenParsing
Determine if the specified comment should be associated with the current code object during parsing.
(Inherited from Expression.)
Public methodAsString
Render the entire code object as a string, using LFs for newlines.
(Inherited from CodeObject.)
Public methodAsText
Convert the code object to text with a trailing newline, and using CR/LF pairs for newlines (file format).
(Inherited from CodeObject.)
Public methodAsText(CodeWriter, CodeObjectRenderFlags) (Inherited from Expression.)
Public methodAsText(CodeObjectRenderFlags, Boolean, StackCodeWriterAlignmentState)
Convert the code object to text using the specified flags and format (file or string).
(Inherited from CodeObject.)
Protected methodAsTextAfter (Inherited from CodeObject.)
Public methodAsTextAnnotations(CodeWriter, CodeObjectRenderFlags)
Render all regular (non-EOL, non-Infix, non-Postfix, non-Message) annotations (comments, attributes, compiler directives).
(Inherited from CodeObject.)
Public methodAsTextAnnotations(CodeWriter, AnnotationFlags, CodeObjectRenderFlags)
Render all specified Infix or Postfix annotations (comments, compiler directives).
(Inherited from CodeObject.)
Public methodAsTextArrayRanks
Render array rank brackets (if any) as text.
(Inherited from TypeRefBase.)
Protected methodAsTextBefore (Inherited from CodeObject.)
Public methodAsTextEOLComments
Render all EOL comments.
(Inherited from CodeObject.)
Protected methodAsTextEvaluatedType (Inherited from CodeObject.)
Public methodAsTextExpression (Overrides SymbolicRefAsTextExpression(CodeWriter, CodeObjectRenderFlags).)
Public methodAsTextInfixComments
Render all Infix comments with the specified mask.
(Inherited from CodeObject.)
Public methodAsTextInfixEOLComments
Render all Infix EOL comments.
(Inherited from CodeObject.)
Public methodAsTextLeftMostAnnotations
Render all regular annotations on the current object, or the left most binary operator.
(Inherited from CodeObject.)
Public methodAsTextLength
Determine the length of the code object if converted to a string using the specified flags.
(Inherited from CodeObject.)
Public methodAsTextPointers
Render pointers (if any) as text.
(Inherited from TypeRefBase.)
Public methodAsTextType
Public methodAsTextTypeArguments
Render type arguments (if any) as text.
(Inherited from TypeRefBase.)
Public methodAttachAnnotation(Annotation, Boolean) (Inherited from CodeObject.)
Public methodAttachAnnotation(Annotation, AnnotationFlags, Boolean)
Attach an Annotation to the CodeObject at the specified position.
(Inherited from CodeObject.)
Public methodAttachComment
Create a comment object and attach it to the code object.
(Inherited from CodeObject.)
Public methodAttachEOLComment
Create an EOL comment object and attach it to the code object.
(Inherited from CodeObject.)
Public methodAttachMessage
Create a message and attach it to the code object.
(Inherited from CodeObject.)
Protected methodBoxingConversionExists
Determine if a boxing conversion exists to the specified type. [C# 4.0 section 6.1.7]
Public methodCalculateMetrics
Calculate metrics for this code object and its children.
(Inherited from CodeObject.)
Public methodStatic memberChangeTypeOfConstant(Object, TypeReference)
Change the type of the specified constant to the specified type if possible.
Public methodStatic memberChangeTypeOfConstant(Object, TypeRefBase)
Change the type of the specified constant to the specified type if possible.
Protected methodCheckForAlignment
Check for alignment of any EOL comments.
(Inherited from CodeObject.)
Public methodStatic memberClearStaticReferences
Clear any static references to types.
Public methodClone
Deep-clone the code object.
(Inherited from TypeRefBase.)
Protected methodCloneField(Object, Object)
Clone a field of a code object, including setting the parent.
(Inherited from CodeObject.)
Protected methodCloneFieldT(T, T)
Clone a field of a code object, including setting the parent.
(Inherited from CodeObject.)
Public methodConvertOpenTypeParameters
Convert all OpenTypeParameterRef type arguments to TypeParameterRefs.
(Inherited from TypeRefBase.)
Public methodCopyFormatting
Copy formatting from another code object.
(Inherited from CodeObject.)
Public methodStatic memberCreate(Type, Expression)
Construct a TypeRef from a Type. Use this factory method if the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, otherwise you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(Type, Int32)
Construct a TypeRef from a Type. Use this factory method if the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, otherwise you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(GenericParameter, Int32)
Construct a TypeRef from a GenericParameter (will return a derived OpenTypeParameterRef).
Public methodStatic memberCreate(TypeReference, Expression)
Construct a TypeRef from a TypeReference. This factory method handles TypeDefinitions, GenericParameters (returning an OpenTypeParameterRef), expression trees (returning an ExpressionTreeRef), TypeReferences (resolving them to a TypeDefinition), or arrays of any of those. For a known TypeDefinition, you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(TypeReference, Int32)
Construct a TypeRef from a TypeReference. This factory method handles TypeDefinitions, GenericParameters (returning an OpenTypeParameterRef), expression trees (returning an ExpressionTreeRef), TypeReferences (resolving them to a TypeDefinition), or arrays of any of those. For a known TypeDefinition, you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(Type, Boolean, Expression)
Construct a TypeRef from a Type. Use this factory method if the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, otherwise you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(Type, Boolean, Int32)
Construct a TypeRef from a Type. Use this factory method if the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, otherwise you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(GenericParameter, Boolean, Int32)
Construct a TypeRef from a GenericParameter (will return a derived OpenTypeParameterRef).
Public methodStatic memberCreate(GenericParameter, ListInt32, Int32)
Construct a TypeRef from a GenericParameter (will return a derived OpenTypeParameterRef).
Public methodStatic memberCreate(TypeReference, Boolean, Expression)
Construct a TypeRef from a TypeReference. This factory method handles TypeDefinitions, GenericParameters (returning an OpenTypeParameterRef), expression trees (returning an ExpressionTreeRef), TypeReferences (resolving them to a TypeDefinition), or arrays of any of those. For a known TypeDefinition, you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(TypeReference, Boolean, Int32)
Construct a TypeRef from a TypeReference. This factory method handles TypeDefinitions, GenericParameters (returning an OpenTypeParameterRef), expression trees (returning an ExpressionTreeRef), TypeReferences (resolving them to a TypeDefinition), or arrays of any of those. For a known TypeDefinition, you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(Type, ChildListExpression, ListInt32, Int32)
Construct a TypeRef from a Type. Use this factory method if the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, otherwise you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(GenericParameter, Boolean, ListInt32, Int32)
Construct a TypeRef from a GenericParameter (will return a derived OpenTypeParameterRef).
Public methodStatic memberCreate(TypeReference, ChildListExpression, ListInt32, Int32)
Construct a TypeRef from a TypeReference. This factory method handles TypeDefinitions, GenericParameters (returning an OpenTypeParameterRef), expression trees (returning an ExpressionTreeRef), TypeReferences (resolving them to a TypeDefinition), or arrays of any of those. For a known TypeDefinition, you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(Type, Boolean, ChildListExpression, ListInt32, Int32, Boolean)
Construct a TypeRef from a Type. Use this factory method if the Type might be a generic parameter (requiring an OpenTypeParameterRef/TypeParameterRef) or expression tree (requiring an ExpressionTreeRef) or an array of one of those, otherwise you may use a 'new TypeRef()' constructor for efficiency.
Public methodStatic memberCreate(TypeReference, Boolean, ChildListExpression, ListInt32, Int32, Boolean)
Construct a TypeRef from a TypeReference. This factory method handles TypeDefinitions, GenericParameters (returning an OpenTypeParameterRef), expression trees (returning an ExpressionTreeRef), TypeReferences (resolving them to a TypeDefinition), or arrays of any of those. For a known TypeDefinition, you may use a 'new TypeRef()' constructor for efficiency.
Public methodCreateAnnotations
Create the list of child Annotations, or return the existing one.
(Inherited from CodeObject.)
Public methodCreateArrayRanks
Create the child list of array ranks, or return the existing one.
(Inherited from TypeRefBase.)
Public methodStatic memberCreateNested(Type)
Create a type expression for the specified Type, handling nested types.
Public methodStatic memberCreateNested(TypeDefinition)
Create a type expression for the specified TypeDefinition, handling nested types.
Public methodStatic memberCreateNullable(Expression, Boolean)
Create a TypeRef to a nullable version of the specified type expression.
Public methodStatic memberCreateNullable(Expression, ListInt32, Int32)
Create a TypeRef to a nullable version of the specified type expression.
Public methodStatic memberCreateNullable(Expression, Boolean, ListInt32, Int32)
Create a TypeRef to a nullable version of the specified type expression.
Public methodCreateRef
Create a reference to the CodeObject.
(Inherited from CodeObject.)
Public methodCreateTypeArguments
Create the child list of type argument Expressions, or return the existing one.
(Inherited from TypeRefBase.)
Protected methodStatic memberCreateTypeRef
Protected methodDefaultFormat
Default format the code object.
(Inherited from Expression.)
Protected methodDefaultFormatField
Default format the specified child field code object.
(Inherited from CodeObject.)
Public methodDefaultNewLines
Determine a default of 1 or 2 newlines when adding items to a Block.
(Inherited from CodeObject.)
Public methodDispose
Dispose the CodeObject.
(Inherited from CodeObject.)
Public methodEquals (Inherited from Object.)
Public methodEvaluateType
Evaluate the type of the Expression.
(Overrides ExpressionEvaluateType(Boolean).)
Public methodEvaluateTypeArgumentTypes
Evaluate the types of any type arguments of the TypeRef by searching for matching type arguments in the specified parent code object tree.
(Inherited from TypeRefBase.)
Public methodEvaluateTypeOrNamespace
Evaluate the Expression to a type or namespace.
(Inherited from Expression.)
Protected methodFinalize (Inherited from Object.)
Public methodStatic memberFind(Type, String, Boolean)
Find a nested type in the specified Type with the specified name.
Public methodStatic memberFind(Alias, String, Boolean)
Find a type in the specified type or namespace Alias with the specified name.
Public methodStatic memberFind(Namespace, String, Boolean)
Find a type in the specified Namespace with the specified name.
Public methodStatic memberFind(SymbolicRef, String, Boolean)
Find a type in the specified NamespaceRef or TypeRefBase with the specified name.
Public methodStatic memberFind(TypeDecl, String, Boolean)
Find a nested type in the specified TypeDecl with the specified name.
Public methodFindExtensionMethod
Find all extension method objects with the given name on the referenced type object.
Protected methodFindNestedTypeArgument (Inherited from TypeRefBase.)
Public methodFindParentT
Find the parent object of the specified type.
(Inherited from CodeObject.)
Public methodFindParentMethod
Find the parent method (or anonymous method or lambda) of the current code object.
(Inherited from CodeObject.)
Public methodFindParentMethodOrType
Find the parent method (or anonymous method or lambda) or type of the current code object.
(Inherited from CodeObject.)
Public methodFindTypeArgument
Find a type argument for the specified type parameter.
(Overrides ExpressionFindTypeArgument(TypeParameterRef, CodeObject, DictionaryObject, Object).)
Public methodFindTypeArgumentInBase
Find a type argument in a base class for the specified type parameter.
Public methodFindTypeArgumentInTypeArguments
Find a type argument for the specified type parameter in the type arguments of the type.
(Inherited from TypeRefBase.)
Public methodStatic memberFindTypeRef
Find or create a TypeRef that represents the appropriate TypeDefinition/Type in the specified Project that has the same FullName as the specified Type.
Public methodFindUserDefinedImplicitConversion
Find any user-defined implicit conversion operator to the specified type.
Protected methodFindUserDefinedImplicitConversions
Find all user-defined implicit conversion operators from the current type to any other type.
Protected methodFindUserDefinedImplicitConversions(TypeRef, Boolean)
Find all user-defined implicit conversion operators to the specified type.
Public methodFirstPrefix
Get the expression on the left of the left-most Dot operator.
(Inherited from Expression.)
Public methodFormatAsArgument
Format an expression assigned as an argument to another code object (turns off any parentheses).
(Inherited from Expression.)
Public methodGetAllChildrenT
Get an enumerator for all children objects of type T in the CodeObject and in any child CodeObjects (recursively).
(Inherited from CodeObject.)
Public methodGetAttribute
Returns the first attribute expression (Call or ConstructorRef) with the specified name on the CodeObject.
(Inherited from CodeObject.)
Public methodGetBaseType
Get the base type of the referenced type.
Public methodGetComment
Get the comment that satisfies the specified predicate.
(Inherited from CodeObject.)
Public methodStatic memberGetCommonType
Find a common type (using implicit conversions) that can represent both specified types.
Public methodGetConstantValue
Get the value of any represented constant. For enums, an EnumConstant object will be returned, which has both the Enum type and a constant value of its underlying type.
(Overrides TypeRefBaseGetConstantValue.)
Public methodGetConstructor
Get the non-static constructor for the referenced type.
Public methodGetConstructors(Boolean)
Get all (non-static) constructors for the referenced type.
Public methodStatic memberGetConstructors(Object, Boolean)
Get all (non-static) constructors for the specified code object.
Public methodGetDeclaringType
Get the declaring type.
(Overrides SymbolicRefGetDeclaringType.)
Public methodGetDelegateParameters
Get the delegate parameters if the expression evaluates to a delegate type.
(Overrides TypeRefBaseGetDelegateParameters.)
Public methodGetDelegateParameterType
Get the type (or null if none) of the delegate parameter with the specified index.
(Inherited from TypeRefBase.)
Public methodGetDelegateReturnType
Get the delegate return type if the expression evaluates to a delegate type.
(Overrides TypeRefBaseGetDelegateReturnType.)
Public methodGetDescription
Get a short text description of the CodeObject. This is generally the shortest text representation that uniquely identifies objects, even if they have the same name, for example: type or return type, name, type parameters, parameters.
(Inherited from CodeObject.)
Public methodGetDocSummary
Returns the DocSummary documentation comment, or null if none exists.
(Inherited from SymbolicRef.)
Public methodGetElementType
Get the element type of the type reference (if it's an array or pointer, otherwise null).
(Inherited from TypeRefBase.)
Public methodStatic memberGetEquivalentType
Get the equivalent Type for the specified TypeReference (only works for primitive and built-in .NET types).
Public methodGetEvent
Get the event with the specified name.
Public methodGetField
Get the field with the specified name.
Public methodGetFullName
Get the full name of the object, including the namespace name.
(Overrides TypeRefBaseGetFullName.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetIndentLevel
Get the indent level of this object.
(Inherited from CodeObject.)
Public methodGetIndentSpaceCount
Get the current indent in spaces.
(Inherited from CodeObject.)
Public methodGetIndexer
Get the indexer with the specified parameter types.
Public methodGetInferredType
Determine the type of an inferred ('var') type.
(Inherited from CodeObject.)
Public methodGetInterfaces
Get all interfaces directly implemented by the type.
Public methodGetIsSameRefHashCode
Calculate a hash code for the referenced object which is the same for all references where IsSameRef() is true.
(Overrides SymbolicRefGetIsSameRefHashCode.)
Public methodGetLocalTypeArgumentCount
Get the number of specified type arguments.
Public methodGetMethod(String, TypeRefBase)
Get the method with the specified name and parameter types.
Public methodGetMethod(String, BindingFlags, TypeRefBase)
Get the method with the specified name, binding flags, and parameter types.
Public methodGetMethods(String, Boolean)
Get all methods with the specified name.
Public methodGetMethods(String, Boolean, NamedObjectGroup)
Get all methods with the specified name.
Public methodGetNamespace
Get the Namespace for this CodeObject.
(Inherited from CodeObject.)
Public methodGetNestedType
Get the nested type with the specified name.
Public methodGetProperty
Get the property with the specified name.
Public methodGetReferencedType
Get the actual type reference, retrieving from any constant value if necessary.
(Overrides TypeRefBaseGetReferencedType.)
Public methodGetType (Inherited from Object.)
Public methodGetTypeArgumentVariance
Get the variance state of the type argument with the specified index;
(Overrides TypeRefBaseGetTypeArgumentVariance(Int32).)
Public methodGetTypeCode
Get the TypeCode of the referenced type.
Public methodGetTypeParametersAsArguments
Get the declared type parameters (if any) of the referenced type as type arguments.
Public methodGetTypeRef
Get a TypeRef for the type with the specified full name, with caching (generally used for System types).
(Inherited from CodeObject.)
Public methodGetTypeWithoutConstant
Get a TypeRef for the actual type, excluding any constant values.
(Overrides TypeRefBaseGetTypeWithoutConstant.)
Public methodGetUnderlyingTypeOfEnum
Get the the underlying type if this is an enum type (otherwise returns null).
Public methodGetWorstMessageType
Get the type of the worst attached message.
(Inherited from CodeObject.)
Protected methodHasAnnotationT (Inherited from CodeObject.)
Public methodHasAttribute
Returns true if the attribute with the specified name exists on the object, otherwise false.
(Inherited from CodeObject.)
Public methodHasImplicitConversion
Check if an implicit conversion will take place between the expression and its parent code object (Operator or VariableDecl). Conversions to type 'object' are not included, since there is no actual data conversion. The 'from' and 'to' types are returned whether an implicit conversion is available or not. Any applicable user-defined conversion method is returned.
(Inherited from Expression.)
Protected methodHasSameArrayRanks
Determine if this TypeRef has the same array ranks as the specified TypeRef.
Protected methodHasSameDelegateParameters
Protected methodHasSameTypeArguments
Determine if this TypeRef has the same type arguments as the specified TypeRef.
Public methodHasUnresolvedRef
Returns true if the code object is an UnresolvedRef or has any UnresolvedRef children.
(Inherited from TypeRefBase.)
Public methodImplicitIdentityConversionExists
Determine if an implicit identity conversion exists to the specified type.
(Overrides TypeRefBaseImplicitIdentityConversionExists(TypeRefBase).)
Public methodImplicitReferenceConversionExists
Determine if an implicit reference conversion exists to the specified type.
(Overrides TypeRefBaseImplicitReferenceConversionExists(TypeRefBase, Boolean).)
Public methodStatic memberInitializeTypeRefs
Initialize static TypeRefs for standard types according to the types loaded in the specified Project if UseMonoCecilLoads is true - otherwise, or if null is passed, default to the standard mscorlib types.
Public methodIsAssignableFrom
True if the current type is assignable from the specified type.
Protected methodIsChildIndented
Returns true if the specified child object is indented from the parent.
(Inherited from CodeObject.)
Protected methodIsChildPrefix
Returns true if the specified child object is prefixed to the current object.
(Inherited from CodeObject.)
Public methodStatic memberIsEncompassedBy
Determine if type A is "encompassed by" type B. [C# 4.0 section 6.4.3]
Public methodIsEnumerableType (Overrides TypeRefBaseIsEnumerableType.)
Protected methodIsEnumOrNullableEnum
Public methodIsImplementationOf
Determines if the current TypeRef implements the specified interface TypeRef.
Public methodIsImplicitlyConvertibleFrom
Determine if the reference is implicitly convertible *from* the specified reference.
(Inherited from TypeRefBase.)
Public methodIsImplicitlyConvertibleTo
Determine if the TypeRef is implicitly convertible to the specified TypeRefBase.
(Overrides TypeRefBaseIsImplicitlyConvertibleTo(TypeRefBase, Boolean).)
Public methodIsSameGenericType
Determine if the specified TypeRefBase refers to the same generic type, regardless of actual type arguments.
(Overrides TypeRefBaseIsSameGenericType(TypeRefBase).)
Public methodIsSameOrVarianceConvertibleTo
Determine if the current reference refers to the same code object as the specified reference, or is variance-convertible to it.
Public methodIsSameRef
Determine if the current reference refers to the same code object as the specified reference.
(Overrides SymbolicRefIsSameRef(SymbolicRef).)
Public methodIsSubclassOf
Determines if the current TypeRef is a subclass of the specified TypeRef.
Public methodIsVisibleTypeArgument
Public methodMakeArrayRef
Make an array reference from the current type reference.
(Inherited from TypeRefBase.)
Public methodMakeGenericRef
Make a generic type reference from the current type reference.
(Inherited from TypeRefBase.)
Protected methodMemberwiseClone (Inherited from Object.)
Public methodMoveAllComments
Move all (regular or EOL) comments from the specified token to the current code object, converting any EOL comments to regular comments (which will be rendered inline if necessary).
(Inherited from CodeObject.)
Public methodMoveAnnotations
Move any annotations from the specified location to the specified destination location.
(Inherited from CodeObject.)
Public methodMoveComments(Token)
Move any non-EOL comments from the specified token to the current code object.
(Inherited from CodeObject.)
Public methodMoveComments(Token, Boolean)
Move any non-EOL comments from the specified token to the current code object.
(Inherited from CodeObject.)
Public methodMoveCommentsAsPost
Move any non-EOL comments from the specified token to the current code object as Post comments.
(Inherited from CodeObject.)
Public methodMoveCommentsToLeftMost
Move any comments from the specified Token to the left-most sub-expression.
(Inherited from Expression.)
Public methodMoveEOLAndPostAnnotations
Move any EOL or Postfix annotations from the specified code object to the current code object.
(Inherited from CodeObject.)
Public methodMoveEOLComment(CodeObject)
Move any EOL comment from the specified code object to the current code object.
(Inherited from CodeObject.)
Public methodMoveEOLComment(Token)
Move any EOL comment from the specified token to the current code object.
(Inherited from CodeObject.)
Public methodMoveEOLComment(Token, Boolean, Boolean)
Move any EOL comment from the specified token to the current code object.
(Inherited from CodeObject.)
Public methodMoveEOLCommentAsInfix
Move any EOL comment from the specified token to the current code object as an Infix EOL comment.
(Inherited from CodeObject.)
Public methodMoveFormatting(CodeObject)
Move formatting from the specified code object to the current object.
(Inherited from CodeObject.)
Public methodMoveFormatting(Token)
Move formatting from the specified token to the current object.
(Inherited from CodeObject.)
Public methodMovePrefixAnnotationsAsPost
Move any prefix annotations on the specified code object to the current code object as post annotations.
(Inherited from CodeObject.)
Protected methodNotifyListedAnnotationAdded
Propagate the listed annotation to the parent CodeUnit and above.
(Inherited from CodeObject.)
Protected methodNotifyListedAnnotationRemoved
Remove the listed annotation from the parent CodeUnit and above.
(Inherited from CodeObject.)
Public methodOccursIn
Determine if the current type is the same as or occurs in the (potentially nested) type arguments of the specified type.
(Inherited from TypeRefBase.)
Protected methodParseAnnotations(Parser, CodeObject)
Parse annotations - specifically, compiler directives around things such as TypeParameters or ParameterDecls.
(Inherited from CodeObject.)
Protected methodParseAnnotations(Parser, CodeObject, Boolean, Boolean)
Parse any comments, attributes, compiler directives.
(Inherited from CodeObject.)
Public methodParseArrayRanks
Parse multiple array ranks.
(Inherited from TypeRefBase.)
Protected methodParseExpectedToken
Parse the specified expected token, attaching a parse error to the current object if it doesn't exist.
(Inherited from CodeObject.)
Protected methodParseUnusedAnnotations
Parse annotations from the Unused list.
(Inherited from CodeObject.)
Public methodRemoveAllAnnotationsT
Remove all annotations of the specified type from this object.
(Inherited from CodeObject.)
Public methodRemoveAllAnnotationsWhereT
Remove all annotations from this object where the specified predicate is true.
(Inherited from CodeObject.)
Public methodRemoveAllMessages
Remove all messages from this object, or optionally only from the specified source.
(Inherited from CodeObject.)
Public methodRemoveAttribute
Remove the attribute expression with the specified name.
(Inherited from CodeObject.)
Public methodReplaceType
Replace all occurrences of one type reference with another, including in (potentially nested) type arguments.
(Inherited from TypeRefBase.)
Public methodResolve(ResolveFlags)
Resolve all child symbolic references.
(Inherited from CodeObject.)
Public methodResolve(ResolveCategory, ResolveFlags)
Resolve all child symbolic references, using the specified ResolveCategory and ResolveFlags.
(Overrides TypeRefBaseResolve(ResolveCategory, ResolveFlags).)
Public methodResolveAttributes
Resolve any attached attributes.
(Inherited from CodeObject.)
Public methodResolveDocComments
Resolve any references in attached documentation comments.
(Inherited from CodeObject.)
Public methodResolveGotoTargetUp
Resolve child code objects that match the specified name are valid goto targets, moving up the tree until a complete match is found.
(Inherited from CodeObject.)
Public methodResolveIndexerRef(Resolver)
Resolve indexers.
(Overrides SymbolicRefResolveIndexerRef(Resolver).)
Public methodStatic memberResolveIndexerRef(Type, Resolver)
Resolve indexers in the specified Type.
Public methodStatic memberResolveIndexerRef(TypeReference, Resolver)
Resolve indexers in the specified TypeReference.
Public methodResolveRef(String, Resolver)
Resolve child code objects that match the specified name.
(Overrides ExpressionResolveRef(String, Resolver).)
Public methodStatic memberResolveRef(Type, String, Resolver)
Resolve child code objects in the specified Type that match the specified name.
Public methodStatic memberResolveRef(TypeRef, String, Resolver)
Resolve child code objects in the specified TypeRef that match the specified name.
Public methodStatic memberResolveRef(TypeReference, String, Resolver)
Resolve child code objects in the specified TypeReference that match the specified name.
Public methodStatic memberResolveRefInBaseInterfaces(Type, String, Resolver)
Search for members with the specified name in all base interfaces of the specified Type, accumulating the results.
Public methodStatic memberResolveRefInBaseInterfaces(TypeReference, String, Resolver)
Search for members with the specified name in all base interfaces of the specified TypeReference, accumulating the results.
Public methodResolveRefUp
Resolve child code objects that match the specified name, moving up the tree until a complete match is found.
(Inherited from CodeObject.)
Public methodResolveRefUpSkipMethodBody
Similar to ResolveRefUp(String, Resolver), but skips trying to resolve the symbol in the body or parameters of a method (used for resolving parameter types).
(Inherited from CodeObject.)
Protected methodSetField(Object, Object, Boolean)
Set a field of a code object, including setting the parent, and optional formatting.
(Inherited from CodeObject.)
Protected methodSetFieldT(ChildListT, ChildListT)
Set a ChildList collection field of a code object, including setting the parent.
(Inherited from CodeObject.)
Protected methodSetFieldT(T, T, Boolean)
Set a field of a code object, including setting the parent, and optional formatting.
(Inherited from CodeObject.)
Protected methodSetFormatFlag (Inherited from CodeObject.)
Protected methodSetLineCol(CodeObject)
Set the line and column numbers to those in the specified CodeObject.
(Inherited from CodeObject.)
Protected methodSetLineCol(Token)
Set the line and column numbers to those in the specified token.
(Inherited from CodeObject.)
Public methodSetNewLines
Special method to set the newline count without setting the NewLinesSet flag.
(Inherited from CodeObject.)
Protected methodSetStartLineCol
Set the starting line and column numbers to those in the specified token (used by some code objects with prefixes such as modifiers).
(Inherited from CodeObject.)
Public methodSkipPrefixes
Get the expression on the right of the right-most Lookup or Dot operator (bypass any '::' and '.' prefixes).
(Inherited from Expression.)
Public methodToString
Render the type of the code object and its description as a string.
(Inherited from CodeObject.)
Public methodUpdateAllDeclExpressions
Recursively update the dictionary of names in the specified Block by either adding or removing (as specified by the 2nd parameter) all appropriate nested INamedCodeObjects expressions in the current CodeObject tree (specifically implemented for LocalDeclExpr expression objects).
(Inherited from CodeObject.)
Protected methodUpdateLineCol
Update the line and column numbers according to the current positions in the CodeWriter, if the UpdateLineCol flag is set.
(Inherited from CodeObject.)
Public methodUserDefinedImplicitConversionExists
Determine if a user-defined implicit conversion exists to the specified type. [C# 4.0 section 6.4.4]
Top
Fields
  NameDescription
Protected field_annotations
Any Annotations (Comments, DocComments, Attributes, or Messages) associated with the CodeObject (null if none).
(Inherited from CodeObject.)
Protected field_arrayRanks
Optional array ranks (for array types only).
(Inherited from TypeRefBase.)
Protected field_columnNumber
The starting column number associated with the CodeObject if parsed from or written to text form.
(Inherited from CodeObject.)
Protected field_formatFlags
Formatting flags - for line feeds, braces, etc.
(Inherited from CodeObject.)
Protected field_lineNumber
The starting line number associated with the CodeObject if parsed from or written to text form.
(Inherited from CodeObject.)
Protected field_parent
The parent CodeObject.
(Inherited from CodeObject.)
Protected field_reference (Inherited from SymbolicRef.)
Protected field_typeArguments
Optional type arguments (for generic types only).
(Inherited from TypeRefBase.)
Protected field_typeFlags
Optional flags, including pointer count, const state, formatting.
(Inherited from TypeRefBase.)
Public fieldStatic memberArrayRef
Public fieldStatic memberAsyncCallbackRef
Public fieldStatic memberBoolRef
Public fieldStatic memberBuiltInTypeNames
An array of built-in type names.
Public fieldStatic memberBuiltInTypeObjects
An array of Type objects for all built-in .NET types.
Public fieldStatic memberByteRef
Public fieldStatic memberCharRef
Public fieldStatic memberCommonTypeRefMap
A map of common types for pairs of built-in or primitive types.
Public fieldStatic memberDecimalRef
Public fieldStatic memberDelegateRef
Public fieldStatic memberDictionary2Ref
Public fieldStatic memberDoubleRef
Public fieldStatic memberDynamicRef
Public fieldStatic memberEnumRef
Public fieldStatic memberFlagsAttributeRef
Public fieldStatic memberFloatRef
Public fieldStatic memberIAsyncResultRef
Public fieldStatic memberICloneableRef
Public fieldStatic memberICollection1Ref
Public fieldStatic memberICollectionRef
Public fieldStatic memberIEnumerable1Ref
Public fieldStatic memberIEnumerableRef
Public fieldStatic memberIFormattableRef
Public fieldStatic memberIGrouping2Ref
Public fieldStatic memberIList1Ref
Public fieldStatic memberIListRef
Public fieldStatic memberIntRef
Public fieldStatic memberIOrderedEnumerable1Ref
Public fieldStatic memberIQueryable1Ref
Public fieldStatic memberISerializableRef
Public fieldStatic memberKeywordToBuiltInTypeIndexMap
A dictionary of built-in type keywords to a unique index value.
Public fieldStatic memberLongRef
Public fieldStatic memberMulticastDelegateRef
Public fieldStatic memberNullable1Ref
Public fieldStatic memberNullRef
Public fieldStatic memberNumberOfBuiltInTypes
The total number of built-in .NET types.
Public fieldStatic memberObjectRef
Public fieldStatic memberParallelQuery1Ref
Public fieldStatic memberPrimitiveTypeNames
A hash set of primitive type names (the "System" namespace prefix is NOT included on the names).
Public fieldStatic memberRuntimeArgumentHandleRef
Public fieldStatic memberSByteRef
Public fieldStatic memberShortRef
Public fieldStatic memberStringRef
Public fieldStatic memberTask1Ref
Public fieldStatic memberTaskRef
Public fieldStatic memberTypedReferenceRef
Public fieldStatic memberTypeNameToTypeCodeMap
A map of type names to TypeCodes (the "System" namespace prefix is NOT included on the names).
Public fieldStatic memberTypeNameToTypeMap
A map of type names to built-in AND primitive .NET types.
Public fieldStatic memberTypeTypeRef
Public fieldStatic memberTypeUtilTRef
Public fieldStatic memberUIntRef
Public fieldStatic memberULongRef
Public fieldStatic memberUShortRef
Public fieldStatic memberValueTypeRef
Public fieldStatic memberVoidRef
Top
Remarks
A TypeRef will reference an ITypeDecl code object for types defined in the same solution, otherwise it will directly reference a TypeDefinition or GenericParameter (if using Mono Cecil) or Type (if using reflection) object. An ITypeDecl might be a TypeDecl, a TypeParameter (using the TypeParameterRef derived class), an Alias to a type (using the AliasRef derived class), an Anonymous Type (using the AnonymousTypeRef derived class), or a Var Type (using the VarTypeRef derived class). When referencing TypeDecls or TypeDefinitions/GenericParameters, any array ranks and/or type arguments are part of the TypeRef itself. When referencing Types, array and generic instance Types can be directly referenced. In the hybrid case of a generic Type with one or more TypeDecls as type parameters, the TypeRef will reference the generic Type with empty type arguments, with the actual type parameters stored in the TypeRef. If the TypeRef is actually a VarTypeRef, then the _reference member will be null, and the Reference property must be used to get the reference. In this case, the Reference can be a string if the type of the VarTypeRef's type is an UnresolvedRef. A TypeRef may also reference a constant, which has both a type and a value. Most constants are of built-in types, and the reference will be to the 'int' or 'string' object, etc. For enums, the reference will be to an EnumConstant object, which stores a TypeRef to the enum type plus an object of the underlying type of the enum containing the value of the constant. For 'null' constants, the reference will be to the ITypeDecl or Type as normal, with a flag set to indicate the 'null' constant.
See Also
Inheritance Hierarchy