Share via


INamedTypeSymbol 介面

定義

表示陣列、指標、型別參數以外的類型。

public interface class INamedTypeSymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>, Microsoft::CodeAnalysis::ITypeSymbol
public interface INamedTypeSymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>, Microsoft.CodeAnalysis.ITypeSymbol
type INamedTypeSymbol = interface
    interface ITypeSymbol
    interface INamespaceOrTypeSymbol
    interface ISymbol
    interface IEquatable<ISymbol>
Public Interface INamedTypeSymbol
Implements IEquatable(Of ISymbol), ITypeSymbol
衍生
實作

備註

此介面會保留供其相關聯的 API 實作使用。 我們保留未來變更它的權利。

屬性

AllInterfaces

此類型為宣告子類型的所有介面清單,不包括此類型本身。 這包括所有宣告的基底介面、基底類型的所有宣告基底介面,以及這些結果的所有宣告基底介面, (遞歸) 。 這也是型別參數的有效介面集。 每個結果都只出現在清單中一次。 此清單會依繼承關聯性以拓撲方式排序:如果介面類型 A 會擴充介面類型 B,則 A 會在清單中的 B 之前。 這與「此類型為適當子類型的所有介面」不同,因為它不會考慮變異數:IEnumerable 字串的 AllInterfaces 將不會包含 IEnumerable<<物件>。>

(繼承來源 ITypeSymbol)
Arity

傳回此類型的arity,或所接受的類型參數數目。 非泛型類型具有零 arity。

AssociatedSymbol

對於隱含宣告的委派類型,會傳回導致產生此委派類型的 EventSymbol。 針對所有其他類型,會傳回 null。 請注意,未來可能會展開一組可能相關聯的符號,以反映語言中的變更。

BaseType

這個型別的宣告基底類型,或 null。 物件類型、介面類型和指標類型沒有基底類型。 類型參數的基底類型是其有效基類。

(繼承來源 ITypeSymbol)
CanBeReferencedByName

如果此符號可以在程式代碼中透過其名稱來參考,則傳回 true。

(繼承來源 ISymbol)
ConstructedFrom

傳回這個類型建構來源的類型符號。 如果有任何) ,但型別自變數與類型 (參數相同,則此類型符號的包含類型 (相同,不過其包含類型可能不會) 。

Constructors

取得此類型的實例和靜態建構函式。

ContainingAssembly

IAssemblySymbol取得包含元件的 。 如果符號在多個元件之間共用,則傳回 null。

(繼承來源 ISymbol)
ContainingModule

IModuleSymbol取得包含模組的 。 如果符號在多個模組之間共用,則傳回 null。

(繼承來源 ISymbol)
ContainingNamespace

INamespaceSymbol取得最接近封入命名空間的 。 如果符號未包含在命名空間中,則傳回 null。

(繼承來源 ISymbol)
ContainingSymbol

ISymbol取得立即包含符號之 的 。

(繼承來源 ISymbol)
ContainingType

INamedTypeSymbol取得包含型別的 。 如果符號未包含在類型內,則傳回 null。

(繼承來源 ISymbol)
DeclaredAccessibility

取得 , Accessibility 表示符號的宣告輔助功能。 如果未宣告輔助功能,則傳回 NotApplicable。

(繼承來源 ISymbol)
DeclaringSyntaxReferences

取得語法節點 () 此符號在來源中宣告的位置。 例如,某些符號 (,部分類別) 可能定義於多個位置。 只有當符號是在原始程式碼中宣告,而且未隱含宣告時,這個屬性才應該傳回一或多個語法節點, (請參閱 IsImplicitlyDeclared 屬性) 。

請注意,針對命名空間符號,宣告語法可能會宣告巢狀命名空間。 例如,“namespace N1” 中 N1 的宣告語法節點。N2 {...}” 是 N1 的整個 NamespaceDeclarationSyntax。N2. 針對全域命名空間,宣告語法會是 CompilationUnitSyntax。

(繼承來源 ISymbol)
DelegateInvokeMethod

針對委派類型,取得委派的叫用方法。 傳回所有其他類型類型的 Null。 請注意,從沒有 Invoke 方法的元數據匯入的委派類型可能不正確。 這類類型會分類為委派,但其 DelegateInvokeMethod 會是 Null。

EnumUnderlyingType

針對列舉類型,取得基礎類型。 傳回所有其他類型類型的 Null。

HasUnsupportedMetadata

表示此符號使用語言無法支援的元數據。

範例包括:

  • VB 中的指標類型
  • ByRef 傳回類型
  • 必要的自定義修飾詞

這與未參考之元件中定義的元數據符號參考不同。 傳回 true 的符號永遠不會成功使用,因此不應該出現在任何 IDE 功能中。

這會針對元數據符號進行設定,如下所示:

  • 類型 - 例如,如果不支援類型 (,則指標類型)
  • 方法 - 不支持參數或傳回類型
  • 欄位 - 不支援類型
  • 事件 - 不支持類型
  • 屬性 - 不支持類型
  • 參數 - 不支援類型
(繼承來源 ISymbol)
InstanceConstructors

取得此類型的實例建構函式。

Interfaces

取得這個類型直接實作的介面集。 此集合不包含直接實作介面之基底介面的介面。 這包含宣告為類型參數條件約束的介面。

(繼承來源 ITypeSymbol)
IsAbstract

取得值,指出符號是否為抽象。

(繼承來源 ISymbol)
IsAnonymousType

這是匿名類型的符號, (包括匿名 VB 委派) 。

(繼承來源 ITypeSymbol)
IsComImport

指定類別或介面從其他的模組匯入。 請參閱ImportComImportAttribute

IsDefinition

取得值,指出符號是否為原始定義。 如果符號衍生自另一個符號,則傳回 false,方法是依實例的類型替代。

(繼承來源 ISymbol)
IsExtern

取得值,指出符號是否在外部定義。

(繼承來源 ISymbol)
IsFileLocal

指出類型是在來源中宣告,而且只會在宣告所在的檔案中顯示。

IsGenericType

如果此類型或某些包含型別的類型具有類型參數,則為 True。

IsImplicitClass

如果類型是保留至無效全域成員的隱含類別 (,則傳回 true,例如非腳本檔案中的方法或語句) 。

IsImplicitlyDeclared

如果編譯程式會自動建立此符號,而且沒有明確的對應原始程式碼宣告,則傳回 true。

(繼承來源 ISymbol)
IsNamespace

如果這個符號是命名空間,則傳回 true。 如果不是命名空間,它必須是類型。

(繼承來源 INamespaceOrTypeSymbol)
IsNativeIntegerType

如果類型代表原生整數,則為 True。 在 C# 中,語言關鍵詞 'nint' 和 'nuint' 所代表的類型。

(繼承來源 ITypeSymbol)
IsOverride

取得值,指出符號是否為基類符號的覆寫。

(繼承來源 ISymbol)
IsReadOnly

如果類型為唯讀,則為 True。

(繼承來源 ITypeSymbol)
IsRecord

如果是來源符號,如果類型為記錄,則為 true。 對於元數據符號,如果類型是記錄和參考型別,則為 true。

(繼承來源 ITypeSymbol)
IsReferenceType

如果已知此類型為參考型別,則為 True。 絕不會傳IsReferenceTypeIsValueType回 true。 不過,針對未受限制的類型參數, IsReferenceTypeIsValueType 兩者都會傳回 false。

(繼承來源 ITypeSymbol)
IsRefLikeType

如果類型類似 ref,則為 True,這表示其遵循類似 CLR by-ref 變數的規則。 如果類型不類似 ref,或語言沒有類似 ref 類型的概念,則為 False。

(繼承來源 ITypeSymbol)
IsScriptClass

如果類型為 Script 類別,則傳回 true。 這可能是互動式提交類別或 csx 檔案中的 Script 類別。

IsSealed

取得值,指出符號是否為密封。

(繼承來源 ISymbol)
IsSerializable

True 是表示 如果類型是可串行化 (具有可串行化的元數據旗標) 。

IsStatic

取得值,指出符號是否為靜態。

(繼承來源 ISymbol)
IsTupleType

這是元組的符號。

(繼承來源 ITypeSymbol)
IsType

如果這個符號是類型,則傳回 true。 如果不是類型,它必須是命名空間。

(繼承來源 INamespaceOrTypeSymbol)
IsUnboundGenericType

如果這是 未系結 泛型類型的參考,則為 True。 如果其完整名稱中的所有類型自變數清單都是空的,泛型類型就會被視為 未繫結 。 請注意,未系結泛型型別的類型自變數會以錯誤類型的形式傳回,因為它們真的沒有類型自變數。 未系結的泛型型別會為其BaseType產生 null,以及其介面的空白結果。

IsUnmanagedType

True 是表示 如果類型是非受控,則根據語言規則。 如果 Managed 或語言沒有 Unmanaged 型別的概念,則為 False。

(繼承來源 ITypeSymbol)
IsValueType

如果已知此類型為實值型別,則為 True。 絕不會傳IsReferenceTypeIsValueType回 true。 不過,針對未受限制的類型參數, IsReferenceTypeIsValueType 兩者都會傳回 false。

(繼承來源 ITypeSymbol)
IsVirtual

取得值,指出符號是否為虛擬。

(繼承來源 ISymbol)
Kind

取得 , SymbolKind 指出其為何種符號。

(繼承來源 ISymbol)
Language

取得來源語言 (“C#” 或 “Visual Basic”) 。

(繼承來源 ISymbol)
Locations

取得原本在來源或元數據中定義符號的位置。 例如,某些符號 (,部分類別) 可能定義於多個位置。

(繼承來源 ISymbol)
MemberNames

傳回這個類型內宣告之成員名稱的集合。

MetadataName

取得在元數據中顯示的符號名稱。 在大部分情況下,這與 Name 屬性相同,但有下列例外狀況:

  1. 泛型型別的元數據名稱包含 「『1』、“ 2 等後綴,指出其不包含類型 (參數數目,但不包含類型或命名空間的名稱) 。
  2. 相較於 name 屬性,明確介面名稱的元數據名稱已移除空格。
  3. 名稱的長度限制為不超過元數據限制。
(繼承來源 ISymbol)
MetadataToken

取得與此符號相關聯的元數據標記,如果未從元數據載入符號,則為0。

(繼承來源 ISymbol)
MightContainExtensionMethods

判斷符號是否可能包含擴充方法。 如果為 false,表示符號不包含擴充方法。

Name

取得符號名稱。 如果未命名,則傳回空字串。

(繼承來源 ISymbol)
NativeIntegerUnderlyingType

如果這是原生整數,則傳回基礎類型的符號,可以是 IntPtrUIntPtr。 否則,會傳回 null。

NullableAnnotation

與類型相關聯的可為 Null 註釋,如果沒有 None 則為 。

(繼承來源 ITypeSymbol)
OriginalDefinition

取得此類型符號的原始定義。 如果這個符號是透過 (說) 類型替代來衍生自另一個符號,這會取得原始符號,如同來源或元數據中所定義。

SpecialType

列舉值,識別特定「特殊」型別,例如 Object。 如果類型不是特殊,則傳 None 回 。

(繼承來源 ITypeSymbol)
StaticConstructors

取得此類型的靜態建構函式。

TupleElements

會傳回欄位,代表 Tuple 類型的 Tuple 元素。

如果此類型不是元組,則會傳回預設值。

TupleUnderlyingType

如果這是具有專案名稱的元組類型,則傳回 Tuple 類型的符號,而不使用名稱。 否則,會傳回 null。 對應至擴充功能字段類型的類型自變數, (VT[8]。Rest) ,這是第 8 個 (一個基底) 位置,一律是另一個元組的符號,而不是其基礎類型。

TypeArgumentNullableAnnotations

傳回已取代類型參數之類型自變數的最上層 Null 性。 如果沒有取代指定型別參數,則會 None 針對該類型自變數傳回 。

TypeArguments

傳回已取代類型參數的型別自變數。 如果沒有取代指定型別參數,則類型參數本身會被視為類型自變數。

TypeArgumentsNullableAnnotations

傳回已取代類型參數之類型自變數的最上層 Null 性。 如果沒有取代指定型別參數,則會 NotApplicable 針對該類型自變數傳回 。

TypeKind

列舉值,識別此類型是否為數位、指標、列舉等等。

(繼承來源 ITypeSymbol)
TypeParameters

傳回此類型具有的類型參數。 如果這是非泛型類型,則傳回空的 ImmutableArray。

方法

Accept(SymbolVisitor)

表示陣列、指標、型別參數以外的類型。

(繼承來源 ISymbol)
Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

表示陣列、指標、型別參數以外的類型。

(繼承來源 ISymbol)
Accept<TResult>(SymbolVisitor<TResult>)

表示陣列、指標、型別參數以外的類型。

(繼承來源 ISymbol)
Construct(ImmutableArray<ITypeSymbol>, ImmutableArray<NullableAnnotation>)

傳回建構的類型,指定其型別自變數和類型自變數可為 Null 的註釋。

Construct(ITypeSymbol[])

傳回建構的類型,指定其型別自變數。

ConstructUnboundGenericType()

傳回這個具名型別的未繫結泛型型別。

Equals(ISymbol, SymbolEqualityComparer)

根據所提供的規則,判斷此符號是否等於另一個符號 SymbolEqualityComparer

(繼承來源 ISymbol)
FindImplementationForInterfaceMember(ISymbol)

傳回此類型中的對應符號或實作 interfaceMember 的基底類型, (隱含或明確) ,如果沒有這類 (符號存在,則為 null,可能是因為此類型不會實作 interfaceMember 的容器,或此類型未提供成功實作 interfaceMember) 的成員。

(繼承來源 ITypeSymbol)
GetAttributes()

取得符號的屬性。 如果沒有屬性,則傳回空 IEnumerable<T> 的。

(繼承來源 ISymbol)
GetDocumentationCommentId()

傳回符號的檔批註標識符,如果符號不支援檔批注,則為 null。

(繼承來源 ISymbol)
GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

取得 XML (做為與符號相關聯之批注的文字) 。

(繼承來源 ISymbol)
GetMembers()

取得此符號的所有成員。

(繼承來源 INamespaceOrTypeSymbol)
GetMembers(String)

取得具有特定名稱之這個符號的所有成員。

(繼承來源 INamespaceOrTypeSymbol)
GetTypeArgumentCustomModifiers(Int32)

傳回已取代類型參數之類型自變數的自定義修飾詞。 修飾詞會對應至陣列內相同序數的 TypeArguments type 自變數。 如果沒有修飾詞,則傳回空陣列。

GetTypeMembers()

取得屬於類型之這個符號的所有成員。

(繼承來源 INamespaceOrTypeSymbol)
GetTypeMembers(String)

取得此符號的所有成員,這些成員是具有任何arity特定名稱的類型。

(繼承來源 INamespaceOrTypeSymbol)
GetTypeMembers(String, Int32)

取得此符號的所有成員,這些成員是具有特定名稱和arity的類型

(繼承來源 INamespaceOrTypeSymbol)
ToDisplayParts(NullableFlowState, SymbolDisplayFormat)

將符號轉換成字串部分的陣列,其中每一個都有一種。 適合用於著色顯示字串。

(繼承來源 ITypeSymbol)
ToDisplayParts(SymbolDisplayFormat)

將符號轉換成字串元件數組,其中每個元件都有一種。 適合用於著色顯示字串。

(繼承來源 ISymbol)
ToDisplayString(NullableFlowState, SymbolDisplayFormat)

ITypeSymbol 和 可為 Null 的流程狀態轉換為字串表示。

(繼承來源 ITypeSymbol)
ToDisplayString(SymbolDisplayFormat)

將符號轉換成字串表示。

(繼承來源 ISymbol)
ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

將符號轉換成字串元件數組,其中每個元件都有一種。 可以針對原始程式碼中的特定位置量身打造。 適合用於著色顯示字串。

(繼承來源 ISymbol)
ToMinimalDisplayParts(SemanticModel, NullableFlowState, Int32, SymbolDisplayFormat)

將符號轉換成字串元件數組,其中每個元件都有一種。 可以針對原始程式碼中的特定位置量身打造。 適合用於著色顯示字串。

(繼承來源 ITypeSymbol)
ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

將符號轉換成可向用戶顯示的字串。 可以針對原始程式碼中的特定位置量身打造。

(繼承來源 ISymbol)
ToMinimalDisplayString(SemanticModel, NullableFlowState, Int32, SymbolDisplayFormat)

將符號轉換成可向用戶顯示的字串。 可以針對原始程式碼中的特定位置量身打造。

(繼承來源 ITypeSymbol)
WithNullableAnnotation(NullableAnnotation)

傳回與這個類型相同的類型,但具有指定的可為 Null 的註釋。

(繼承來源 ITypeSymbol)

擴充方法

IsMustOverride(ISymbol)

表示陣列、指標、型別參數以外的類型。

IsNotOverridable(ISymbol)

表示陣列、指標、型別參數以外的類型。

IsOverridable(ISymbol)

表示陣列、指標、型別參數以外的類型。

IsOverrides(ISymbol)

表示陣列、指標、型別參數以外的類型。

IsShared(ISymbol)

判斷符號是否為共用。

適用於