CodeClass2.AddDelegate(String, Object, Object, vsCMAccess) 方法

定义

在指定类中创建一个新委托。

EnvDTE::CodeDelegate AddDelegate(std::wstring const & Name, winrt::Windows::Foundation::IInspectable const & Type, winrt::Windows::Foundation::IInspectable const & Position, EnvDTE::vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[System.Runtime.InteropServices.DispId(70)]
public EnvDTE.CodeDelegate AddDelegate (string Name, object Type, object Position, EnvDTE.vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[<System.Runtime.InteropServices.DispId(70)>]
abstract member AddDelegate : string * obj * obj * EnvDTE.vsCMAccess -> EnvDTE.CodeDelegate
Public Function AddDelegate (Name As String, Type As Object, Optional Position As Object, Optional Access As vsCMAccess = EnvDTE.vsCMAccess.vsCMAccessDefault) As CodeDelegate

参数

Name
String

必需。 要添加的委托的名称。

Type
Object

必需。 一个表示函数返回的数据类型的 vsCMTypeRef 常数。 它可以是 CodeTypeRef 对象、vsCMTypeRef 常数或完全限定类型名称。

Position
Object

可选。 默认值 = 0。 将在其后添加新元素的代码元素。

如果值为 Long 数据类型,则 Position 指示在其后添加新元素的元素。

因为集合从 1 开始计数,所以传递 0 指示应将新元素放置在集合的开始处。 值为 -1 表示应将元素放在结尾处。

Access
vsCMAccess

可选。 vsCMAccess指定访问类型的常数。

返回

CodeDelegate

CodeDelegate 对象。

实现

属性

示例

[C#]

public void CodeClass2AddDelegateExample(DTE2 dte2)  
{  
    // Before running this example, open a code document from a project  
    // and place the insertion point inside a class definition.  
    try  
    {  
        // Retrieve the CodeClass at the insertion point.  
        TextSelection sel =  
            TextSelection)dte2.ActiveDocument.Selection;  
        CodeClass cls =  
            (CodeClass)sel.ActivePoint.get_CodeElement(  
             vsCMElement.vsCMElementClass);  

        object pos = -1; // Place class at end of members collection  
        // Add delegate.  
        CodeDelegate cdel = cls.AddDelegate("TestDelegate",  
            vsCMTypeRef.vsCMTypeRefBool,  
            pos, vsCMAccess.vsCMAccessPublic);  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

注解

本机 Visual C++ 要求其完全限定类型名采用冒号分隔 (::) 格式。 所有其他语言使用句号分隔格式。

参数的正确性由代码模型后面的语言确定。

备注

在进行了某些类型的编辑之后,代码模型元素(例如类、结构、函数、特性、委托等)的值可能变为非确定性的,这意味着不能确定它们的值始终保持不变。 有关详细信息,请参阅 "代码模型元素值在 使用代码模型查找代码时 可能发生变化" (Visual Basic) "。

适用于