INamedTypeSymbol 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示陣列、指標、型別參數以外的類型。
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 |
表示此符號使用語言無法支援的元數據。 範例包括:
這與未參考之元件中定義的元數據符號參考不同。 傳回 true 的符號永遠不會成功使用,因此不應該出現在任何 IDE 功能中。 這會針對元數據符號進行設定,如下所示:
|
InstanceConstructors |
取得此類型的實例建構函式。 |
Interfaces |
取得這個類型直接實作的介面集。 此集合不包含直接實作介面之基底介面的介面。 這包含宣告為類型參數條件約束的介面。 (繼承來源 ITypeSymbol) |
IsAbstract |
取得值,指出符號是否為抽象。 (繼承來源 ISymbol) |
IsAnonymousType |
這是匿名類型的符號, (包括匿名 VB 委派) 。 (繼承來源 ITypeSymbol) |
IsComImport |
指定類別或介面從其他的模組匯入。 請參閱Import和ComImportAttribute |
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。 不過,針對未受限制的類型參數, IsReferenceType 這 IsValueType 兩者都會傳回 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。 不過,針對未受限制的類型參數, IsReferenceType 這 IsValueType 兩者都會傳回 false。 (繼承來源 ITypeSymbol) |
IsVirtual |
取得值,指出符號是否為虛擬。 (繼承來源 ISymbol) |
Kind |
取得 , SymbolKind 指出其為何種符號。 (繼承來源 ISymbol) |
Language |
取得來源語言 (“C#” 或 “Visual Basic”) 。 (繼承來源 ISymbol) |
Locations |
取得原本在來源或元數據中定義符號的位置。 例如,某些符號 (,部分類別) 可能定義於多個位置。 (繼承來源 ISymbol) |
MemberNames |
傳回這個類型內宣告之成員名稱的集合。 |
MetadataName |
取得在元數據中顯示的符號名稱。 在大部分情況下,這與 Name 屬性相同,但有下列例外狀況:
|
MetadataToken |
取得與此符號相關聯的元數據標記,如果未從元數據載入符號,則為0。 (繼承來源 ISymbol) |
MightContainExtensionMethods |
判斷符號是否可能包含擴充方法。 如果為 false,表示符號不包含擴充方法。 |
Name |
取得符號名稱。 如果未命名,則傳回空字串。 (繼承來源 ISymbol) |
NativeIntegerUnderlyingType | |
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。 |
方法
擴充方法
IsMustOverride(ISymbol) |
表示陣列、指標、型別參數以外的類型。 |
IsNotOverridable(ISymbol) |
表示陣列、指標、型別參數以外的類型。 |
IsOverridable(ISymbol) |
表示陣列、指標、型別參數以外的類型。 |
IsOverrides(ISymbol) |
表示陣列、指標、型別參數以外的類型。 |
IsShared(ISymbol) |
判斷符號是否為共用。 |