Click or drag to resize

INamedTypeSymbol Interface



Represents a type other than an array, a pointer, a type parameter.

Namespace:  Microsoft.CodeAnalysis
Assembly:  Microsoft.CodeAnalysis (in Microsoft.CodeAnalysis.dll) Version: 2.3.0-dev-56735-00. Commit Hash: <developer build>
Syntax
public interface INamedTypeSymbol : ITypeSymbol, 
	INamespaceOrTypeSymbol, ISymbol, IEquatable

The INamedTypeSymbol type exposes the following members.

Properties
  NameDescription
Public propertyAllInterfaces
The list of all interfaces of which this type is a declared subtype, excluding this type itself. This includes all declared base interfaces, all declared base interfaces of base types, and all declared base interfaces of those results (recursively). This also is the effective interface set of a type parameter. Each result appears exactly once in the list. This list is topologically sorted by the inheritance relationship: if interface type A extends interface type B, then A precedes B in the list. This is not quite the same as "all interfaces of which this type is a proper subtype" because it does not take into account variance: AllInterfaces for IEnumerable<string> will not include IEnumerable<object>;
(Inherited from ITypeSymbol.)
Public propertyArity
Returns the arity of this type, or the number of type parameters it takes. A non-generic type has zero arity.
Public propertyAssociatedSymbol
For implicitly declared delegate types returns the EventSymbol that caused this delegate type to be generated. For all other types returns null. Note, the set of possible associated symbols might be expanded in the future to reflect changes in the languages.
Public propertyBaseType
The declared base type of this type, or null. The object type, interface types, and pointer types do not have a base type. The base type of a type parameter is its effective base class.
(Inherited from ITypeSymbol.)
Public propertyCanBeReferencedByName
Returns true if this symbol can be referenced by its name in code.
(Inherited from ISymbol.)
Public propertyConstructedFrom
Returns the type symbol that this type was constructed from. This type symbol has the same containing type (if any), but has type arguments that are the same as the type parameters (although its containing type might not).
Public propertyConstructors
Get the both instance and static constructors for this type.
Public propertyContainingAssembly
Gets the IAssemblySymbol for the containing assembly. Returns null if the symbol is shared across multiple assemblies.
(Inherited from ISymbol.)
Public propertyContainingModule
Gets the IModuleSymbol for the containing module. Returns null if the symbol is shared across multiple modules.
(Inherited from ISymbol.)
Public propertyContainingNamespace
Gets the INamespaceSymbol for the nearest enclosing namespace. Returns null if the symbol isn't contained in a namespace.
(Inherited from ISymbol.)
Public propertyContainingSymbol
Gets the ISymbol for the immediately containing symbol.
(Inherited from ISymbol.)
Public propertyContainingType
Gets the INamedTypeSymbol for the containing type. Returns null if the symbol is not contained within a type.
(Inherited from ISymbol.)
Public propertyDeclaredAccessibility
Gets a Accessibility indicating the declared accessibility for the symbol. Returns NotApplicable if no accessibility is declared.
(Inherited from ISymbol.)
Public propertyDeclaringSyntaxReferences
Get the syntax node(s) where this symbol was declared in source. Some symbols (for example, partial classes) may be defined in more than one location. This property should return one or more syntax nodes only if the symbol was declared in source code and also was not implicitly declared (see the IsImplicitlyDeclared property). Note that for namespace symbol, the declaring syntax might be declaring a nested namespace. For example, the declaring syntax node for N1 in "namespace N1.N2 {...}" is the entire NamespaceDeclarationSyntax for N1.N2. For the global namespace, the declaring syntax will be the CompilationUnitSyntax.
(Inherited from ISymbol.)
Public propertyDelegateInvokeMethod
For delegate types, gets the delegate's invoke method. Returns null on all other kinds of types. Note that it is possible to have an ill-formed delegate type imported from metadata which does not have an Invoke method. Such a type will be classified as a delegate but its DelegateInvokeMethod would be null.
Public propertyEnumUnderlyingType
For enum types, gets the underlying type. Returns null on all other kinds of types.
Public propertyHasUnsupportedMetadata
Indicates that this symbol uses metadata that cannot be supported by the language. Examples include: - Pointer types in VB - ByRef return type - Required custom modifiers This is distinguished from, for example, references to metadata symbols defined in assemblies that weren't referenced. Symbols where this returns true can never be used successfully, and thus should never appear in any IDE feature. This is set for metadata symbols, as follows: Type - if a type is unsupported (e.g., a pointer type, etc.) Method - parameter or return type is unsupported Field - type is unsupported Event - type is unsupported Property - type is unsupported Parameter - type is unsupported
(Inherited from ISymbol.)
Public propertyInstanceConstructors
Get the instance constructors for this type.
Public propertyInterfaces
Gets the set of interfaces that this type directly implements. This set does not include interfaces that are base interfaces of directly implemented interfaces. This does include the interfaces declared as constraints on type parameters.
(Inherited from ITypeSymbol.)
Public propertyIsAbstract
Gets a value indicating whether the symbol is abstract.
(Inherited from ISymbol.)
Public propertyIsAnonymousType
Is this a symbol for an anonymous type (including anonymous VB delegate).
(Inherited from ITypeSymbol.)
Public propertyIsComImport
Specifies that the class or interface is imported from another module. See Import and ComImportAttribute
Public propertyIsDefinition
Gets a value indicating whether the symbol is the original definition. Returns false if the symbol is derived from another symbol, by type substitution for instance.
(Inherited from ISymbol.)
Public propertyIsExtern
Gets a value indicating whether the symbol is defined externally.
(Inherited from ISymbol.)
Public propertyIsGenericType
True if this type or some containing type has type parameters.
Public propertyIsImplicitClass
Returns true if the type is the implicit class that holds onto invalid global members (like methods or statements in a non script file).
Public propertyIsImplicitlyDeclared
Returns true if this symbol was automatically created by the compiler, and does not have an explicit corresponding source code declaration.
(Inherited from ISymbol.)
Public propertyIsNamespace
Returns true if this symbol is a namespace. If it is not a namespace, it must be a type.
(Inherited from INamespaceOrTypeSymbol.)
Public propertyIsOverride
Gets a value indicating whether the symbol is an override of a base class symbol.
(Inherited from ISymbol.)
Public propertyIsReferenceType
True if this type is known to be a reference type. It is never the case that IsReferenceType and IsValueType both return true. However, for an unconstrained type parameter, IsReferenceType and IsValueType will both return false.
(Inherited from ITypeSymbol.)
Public propertyIsScriptClass
Returns true if the type is a Script class. It might be an interactive submission class or a Script class in a csx file.
Public propertyIsSealed
Gets a value indicating whether the symbol is sealed.
(Inherited from ISymbol.)
Public propertyIsStatic
Gets a value indicating whether the symbol is static.
(Inherited from ISymbol.)
Public propertyIsTupleType
Is this a symbol for a tuple .
(Inherited from ITypeSymbol.)
Public propertyIsType
Returns true if this symbols is a type. If it is not a type, it must be a namespace.
(Inherited from INamespaceOrTypeSymbol.)
Public propertyIsUnboundGenericType
True if this is a reference to an unbound generic type. A generic type is considered unbound if all of the type argument lists in its fully qualified name are empty. Note that the type arguments of an unbound generic type will be returned as error types because they do not really have type arguments. An unbound generic type yields null for its BaseType and an empty result for its Interfaces.
Public propertyIsValueType
True if this type is known to be a value type. It is never the case that IsReferenceType and IsValueType both return true. However, for an unconstrained type parameter, IsReferenceType and IsValueType will both return false.
(Inherited from ITypeSymbol.)
Public propertyIsVirtual
Gets a value indicating whether the symbol is virtual.
(Inherited from ISymbol.)
Public propertyKind
Gets the SymbolKind indicating what kind of symbol it is.
(Inherited from ISymbol.)
Public propertyLanguage
Gets the source language ("C#" or "Visual Basic").
(Inherited from ISymbol.)
Public propertyLocations
Gets the locations where the symbol was originally defined, either in source or metadata. Some symbols (for example, partial classes) may be defined in more than one location.
(Inherited from ISymbol.)
Public propertyMemberNames
Returns collection of names of members declared within this type.
Public propertyMetadataName
Gets the name of a symbol as it appears in metadata. Most of the time, this is the same as the Name property, with the following exceptions: 1) The metadata name of generic types includes the "`1", "`2" etc. suffix that indicates the number of type parameters (it does not include, however, names of containing types or namespaces). 2) The metadata name of explicit interface names have spaces removed, compared to the name property. 3) The length of names is limited to not exceed metadata restrictions.
(Inherited from ISymbol.)
Public propertyMightContainExtensionMethods
Determines if the symbol might contain extension methods. If false, the symbol does not contain extension methods.
Public propertyName
Gets the symbol name. Returns the empty string if unnamed.
(Inherited from ISymbol.)
Public propertyOriginalDefinition
Get the original definition of this type symbol. If this symbol is derived from another symbol by (say) type substitution, this gets the original symbol, as it was defined in source or metadata.
Public propertySpecialType
An enumerated value that identifies certain 'special' types such as Object. Returns None if the type is not special.
(Inherited from ITypeSymbol.)
Public propertyStaticConstructors
Get the static constructors for this type.
Public propertyTupleElements
Returns fields that represent tuple elements for types that are tuples. If this type is not a tuple, then returns default.
Public propertyTupleUnderlyingType
If this is a tuple type symbol, returns the symbol for its underlying type. Otherwise, returns null. The type argument corresponding to the type of the extension field (VT[8].Rest), which is at the 8th (one based) position is always a symbol for another tuple, rather than its underlying type.
Public propertyTypeArguments
Returns the type arguments that have been substituted for the type parameters. If nothing has been substituted for a give type parameters, then the type parameter itself is consider the type argument.
Public propertyTypeKind
An enumerated value that identifies whether this type is an array, pointer, enum, and so on.
(Inherited from ITypeSymbol.)
Public propertyTypeParameters
Returns the type parameters that this type has. If this is a non-generic type, returns an empty ImmutableArray.
Top
Methods
  NameDescription
Public methodAccept(SymbolVisitor) (Inherited from ISymbol.)
Public methodAcceptTResult(SymbolVisitorTResult) (Inherited from ISymbol.)
Public methodConstruct
Returns a constructed type given its type arguments.
Public methodConstructUnboundGenericType
Returns an unbound generic type of this named type.
Public methodFindImplementationForInterfaceMember
Returns the corresponding symbol in this type or a base type that implements interfaceMember (either implicitly or explicitly), or null if no such symbol exists (which might be either because this type doesn't implement the container of interfaceMember, or this type doesn't supply a member that successfully implements interfaceMember).
(Inherited from ITypeSymbol.)
Public methodGetAttributes (Inherited from ISymbol.)
Public methodGetDocumentationCommentId
Returns the Documentation Comment ID for the symbol, or null if the symbol doesn't support documentation comments.
(Inherited from ISymbol.)
Public methodGetDocumentationCommentXml
Gets the XML (as text) for the comment associated with the symbol.
(Inherited from ISymbol.)
Public methodGetMembers
Get all the members of this symbol.
(Inherited from INamespaceOrTypeSymbol.)
Public methodGetMembers(String)
Get all the members of this symbol that have a particular name.
(Inherited from INamespaceOrTypeSymbol.)
Public methodGetTypeArgumentCustomModifiers
Returns custom modifiers for the type argument that has been substituted for the type parameter. The modifiers correspond to the type argument at the same ordinal within the TypeArguments array. Returns an empty array if there are no modifiers.
Public methodGetTypeMembers
Get all the members of this symbol that are types.
(Inherited from INamespaceOrTypeSymbol.)
Public methodGetTypeMembers(String)
Get all the members of this symbol that are types that have a particular name, of any arity.
(Inherited from INamespaceOrTypeSymbol.)
Public methodGetTypeMembers(String, Int32)
Get all the members of this symbol that are types that have a particular name and arity
(Inherited from INamespaceOrTypeSymbol.)
Public methodToDisplayParts
Convert a symbol to an array of string parts, each of which has a kind. Useful for colorizing the display string.
(Inherited from ISymbol.)
Public methodToDisplayString
Converts the symbol to a string representation.
(Inherited from ISymbol.)
Public methodToMinimalDisplayParts
Convert a symbol to an array of string parts, each of which has a kind. May be tailored to a specific location in the source code. Useful for colorizing the display string.
(Inherited from ISymbol.)
Public methodToMinimalDisplayString
Convert a symbol to a string that can be displayed to the user. May be tailored to a specific location in the source code.
(Inherited from ISymbol.)
Top
Extension Methods
  NameDescription
Public Extension MethodGetRootOperation (Defined by OperationExtensions.)
Public Extension MethodIsMustOverride (Defined by VisualBasicExtensions.)
Public Extension MethodIsNotOverridable (Defined by VisualBasicExtensions.)
Public Extension MethodIsOverridable (Defined by VisualBasicExtensions.)
Public Extension MethodIsOverrides (Defined by VisualBasicExtensions.)
Public Extension MethodIsShared
Determines if symbol is Shared.
(Defined by VisualBasicExtensions.)
Top
Remarks
This interface is reserved for implementation by its associated APIs. We reserve the right to change it in the future.
See Also