CodeClass2 介面
代表原始程式碼中的某一類別。
命名空間: EnvDTE80
組件: EnvDTE80 (在 EnvDTE80.dll 中)
語法
'宣告
<GuidAttribute("295ADCD4-B052-49EE-934E-C6B36862A7C6")> _
Public Interface CodeClass2 _
Inherits CodeClass
[GuidAttribute("295ADCD4-B052-49EE-934E-C6B36862A7C6")]
public interface CodeClass2 : CodeClass
[GuidAttribute(L"295ADCD4-B052-49EE-934E-C6B36862A7C6")]
public interface class CodeClass2 : CodeClass
[<GuidAttribute("295ADCD4-B052-49EE-934E-C6B36862A7C6")>]
type CodeClass2 =
interface
interface CodeClass
end
public interface CodeClass2 extends CodeClass
CodeClass2 類型會公開下列成員。
屬性
名稱 | 描述 | |
---|---|---|
Access | 設定或取得這個程式碼類別的存取屬性。 | |
Attributes | 取得程式碼類別所有屬性的集合。 | |
Bases | 取得衍生自這個程式碼類別的類別集合。 | |
Children | 取得這個程式碼類別內物件的集合。 | |
ClassKind | 基礎架構。 僅限 Microsoft 內部使用。 | |
Collection | 取得程式碼類別內所包含的集合。 | |
Comment | 取得或設定與此程式碼類別關聯的註解。 | |
DataTypeKind | 設定或取得此類別與其他類別的關聯性 (Relationship)。 | |
DerivedTypes | 取得從程式碼類別衍生的物件集合。尚未在 Visual C# 中進行實作。 | |
DocComment | 取得或設定程式碼類別的文件註解。 | |
DTE | 取得最上層的擴充性物件。 | |
EndPoint | 取得程式碼類別結尾位置的編輯點。 | |
Extender | 傳回要求的擴充項 (Extender) 物件 (如果適用於這個程式碼類別)。尚未在 Visual C# 中進行實作。 | |
ExtenderCATID | 取得程式碼類別的擴充項分類 ID (CATID)。尚未在 Visual C# 中進行實作。 | |
ExtenderNames | 取得程式碼類別的可用擴充項清單。尚未在 Visual C# 中進行實作。 | |
FullName | 取得程式碼類別檔案的完整路徑和名稱。 | |
ImplementedInterfaces | 取得由這個程式碼類別實作的介面集合。 | |
InfoLocation | 取得程式碼模型的功能。 | |
InheritanceKind | 取得或設定值,指出類別是否可以用於建立新類別。 | |
IsAbstract | 設定或取得某一程式碼類別是否宣告為抽象。 | |
IsCodeType | 取得值,指出是否可以從這個程式碼類別取得 CodeType 物件。 | |
IsDerivedFrom | 取得值,指出程式碼類別是否有另一個程式碼類別做為其基底。 | |
IsGeneric | 取得值,表示目前類別或結構 (Struct) 是否為泛型。 | |
IsShared | 取得或設定類別的共用 (靜態) 狀態。 | |
Kind | 取得列舉型別,指出類別的型別。 | |
Language | 取得撰寫類別時所使用的程式語言。 | |
Members | 取得這個類別內程式碼項目的集合。 | |
Name | 設定或取得類別名稱。 | |
Namespace | 取得 CodeNamespace 物件,定義類別的父命名空間。 | |
Parent | 取得類別的直接上層父物件。 | |
PartialClasses | 基礎架構。 僅限 Microsoft 內部使用。 | |
Parts | 取得部分的類別。 | |
ProjectItem | 取得與指定之物件相關聯的 ProjectItem。 | |
StartPoint | 取得 TextPoint 物件,定義類別的開頭。 |
回頁首
方法
名稱 | 描述 | |
---|---|---|
AddAttribute | 建立新的屬性程式碼建構並將類別插入正確位置。 | |
AddBase | 將項目加入至繼承之物件的清單中。 | |
AddClass | 在指定的程式碼類別中建立新類別。 | |
AddDelegate | 在指定的類別中建立新委派。 | |
AddEnum | 在類別中建立新列舉型別。 | |
AddEvent | 加入類別事件。 | |
AddFunction | 在類別中建立新函式。 | |
AddImplementedInterface | 將介面加入至繼承之物件的清單中。 | |
AddProperty | 在類別中建立新屬性建構。 | |
AddStruct | 在類別中建立新結構。 | |
AddVariable | 在類別中建立新變數。 | |
GetEndPoint | 取得 TextPoint 物件,標示類別的結尾。 | |
GetStartPoint | 取得 TextPoint 物件,定義類別的開頭。 | |
RemoveBase | 從基底清單中移除物件。 | |
RemoveInterface | 從實作介面清單中移除介面。 | |
RemoveMember | 移除類別成員。 |
回頁首
備註
在藍圖和部分類別的簡介中提到,每個已編譯的類別都可以有一個以上的 CodeClass 物件。 對於檔案中的各個類別,都會有一個 CodeClass 物件的執行個體。 CodeClass2 物件可以判斷它是代表部分或完整類別,以及它是實作為 XML 藍圖或實作為程式碼。 有關 CodeClass2 物件的編輯或加入,可能只能寫入這個類別部分 (和這個類別的檔案)。
注意事項 |
---|
在特定類型的編輯之後,程式碼模型項目 (例如類別、結構、函式、屬性、委派等) 的值可能不具決定性,表示其值不一定維持相同。如需詳細資訊,請參閱使用程式碼模型探索程式碼 (Visual Basic) 的<程式碼模型項目值可以變更>一節。 |
範例
[Visual Basic]
' Macro code.
Sub CodeClass2Example()
' Iterates through the main class and
' lists its parts.
Dim sel As TextSelection
Dim myClass1 As EnvDTE80.CodeClass2
Dim classPart As EnvDTE80.CodeClass2
sel = applicationObject.ActiveDocument.Selection
myClass1 = sel.ActivePoint.CodeElement _
(vsCMElement.vsCMElementClass)
If myClass1.ClassKind = _
vsCMClassKind.vsCMClassKindMainClass Then
For Each classPart In myClass1.Collection
MsgBox(classPart.Name)
Next
End If
End Sub