CodeClass2.AddFunction 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在类中创建一个新函数。
EnvDTE::CodeFunction AddFunction(std::wstring const & Name, EnvDTE::vsCMFunction Kind, winrt::Windows::Foundation::IInspectable const & Type, winrt::Windows::Foundation::IInspectable const & Position, EnvDTE::vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault, winrt::Windows::Foundation::IInspectable const & Location);
[System.Runtime.InteropServices.DispId(64)]
public EnvDTE.CodeFunction AddFunction (string Name, EnvDTE.vsCMFunction Kind, object Type, object Position, EnvDTE.vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault, object Location);
[<System.Runtime.InteropServices.DispId(64)>]
abstract member AddFunction : string * EnvDTE.vsCMFunction * obj * obj * EnvDTE.vsCMAccess * obj -> EnvDTE.CodeFunction
Public Function AddFunction (Name As String, Kind As vsCMFunction, Type As Object, Optional Position As Object, Optional Access As vsCMAccess = EnvDTE.vsCMAccess.vsCMAccessDefault, Optional Location As Object) As CodeFunction
参数
- Name
- String
必需。 新函数的名称。
- Kind
- vsCMFunction
必需。 vsCMFunction指示函数类型的常数,例如函数是否为属性 getter、方法等。
- Type
- Object
必需。 一个表示函数返回的数据类型的 vsCMTypeRef 常数。 它可以是 CodeTypeRef 对象、vsCMTypeRef 常数或完全限定类型名称。
- Position
- Object
可选。 默认值 = 0。 将在其后添加新函数的代码元素。
如果该值为 Long,则 Position 指示在其后添加新元素的元素。
因为集合从 1 开始计数,所以传递 0 指示应将新元素放置在集合的开始处。 值为 -1 表示应将函数放在结尾处。
- Access
- vsCMAccess
可选。 一个 vsCMAccess 常数。
- Location
- Object
可选。 新函数的位置。
返回
CodeFunction 对象。
实现
- 属性
示例
[Visual Basic]
Sub AddFunctionExample2(ByVal dte As 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.
Dim sel As TextSelection = _
CType(dte.ActiveDocument.Selection, TextSelection)
Dim cls As CodeClass = _
CType(sel.ActivePoint.CodeElement( _
vsCMElement.vsCMElementClass), CodeClass)
' Create a new member function.
cls.AddFunction("TestFunction", _
vsCMFunction.vsCMFunctionFunction, _
vsCMTypeRef.vsCMTypeRefInt)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
[C#]
public void AddFunctionExample2(DTE2 dte)
{
// 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)dte.ActiveDocument.Selection;
CodeClass cls =
(CodeClass)sel.ActivePoint.get_CodeElement(
vsCMElement.vsCMElementClass);
// Create a new member function.
cls.AddFunction("TestFunction",
vsCMFunction.vsCMFunctionFunction,
vsCMTypeRef.vsCMTypeRefInt, -1,
vsCMAccess.vsCMAccessDefault, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
注解
本机 Visual C++ 要求其完全限定类型名采用冒号分隔 (::) 格式。 所有其他语言支持句号分隔格式。
参数的正确性由代码模型后面的语言确定。
备注
在进行了某些类型的编辑之后,代码模型元素(例如类、结构、函数、特性、委托等)的值可能变为非确定性的,这意味着不能确定它们的值始终保持不变。 有关详细信息,请参阅 "代码模型元素值在 使用代码模型查找代码时 可能发生变化" (Visual Basic) "。