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 | 获取或设置此类与其他类的关系。 | |
DerivedTypes | 获取从此代码类派生的对象的集合。未在 Visual C# 中实现。 | |
DocComment | 获取或设置此代码类的文档注释。 | |
DTE | 获取顶级扩展性对象。 | |
EndPoint | 获取编辑点,该点是代码类的结束位置。 | |
Extender | 如果所请求的 Extender 对象可用于此代码类,则返回该 Extender 对象。未在 Visual C# 中实现。 | |
ExtenderCATID | 获取此代码类的 Extender 类别 ID (CATID)。未在 Visual C# 中实现。 | |
ExtenderNames | 获取此代码类的可用 Extender 的列表。未在 Visual C# 中实现。 | |
FullName | 获取此代码类文件的完整路径和名称。 | |
ImplementedInterfaces | 获取此代码类实现的接口的集合。 | |
InfoLocation | 获取代码模型的功能。 | |
InheritanceKind | 获取或设置一个值,该值指示类是否可用于创建新类。 | |
IsAbstract | 设置或获取是否将代码类声明为抽象。 | |
IsCodeType | 获取一个值,该值指示是否可以从此代码类中获取 CodeType 对象。 | |
IsDerivedFrom | 获取一个值,该值指示此代码类是否以另一个代码类作为其基类。 | |
IsGeneric | 获取一个值,该值指示当前的类或结构是否为泛型。 | |
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