Compartilhar via


CodeEnum.AddMember(String, Object, Object) Method

Definition

Creates a new member code construct and inserts the code in the correct location.

EnvDTE::CodeVariable AddMember(std::wstring const & Name, winrt::Windows::Foundation::IInspectable const & Value, winrt::Windows::Foundation::IInspectable const & Position);
[System.Runtime.InteropServices.DispId(61)]
public EnvDTE.CodeVariable AddMember (string Name, object Value, object Position);
[<System.Runtime.InteropServices.DispId(61)>]
abstract member AddMember : string * obj * obj -> EnvDTE.CodeVariable
Public Function AddMember (Name As String, Optional Value As Object, Optional Position As Object) As CodeVariable

Parameters

Name
String

Required. The name of the new member.

Value
Object

Optional. The InitExpression of the returned CodeVariable object. It can be passed in either as a string or as an expression object.

Position
Object

Optional. Default = 0. The code element after which to add the new element. If the value is a CodeElement, then the new element is added immediately after it.

If the value is a Long data type, then AddMember(String, Object, Object) indicates the element after which to add the new element.

Because collections begin their count at 1, passing 0 indicates that the new element should be placed at the beginning of the collection. A value of -1 means the element should be placed at the end.

Returns

A CodeVariable object.

Attributes

Examples

Sub AddMemberExample(ByVal dte As DTE2)  

    ' Before running this example, open a code document from a project  
    ' and place the insertion point inside an enumeration.  
    Try  
        ' Retrieve the CodeEnum at the insertion point.  
        Dim sel As TextSelection = _  
            CType(dte.ActiveDocument.Selection, TextSelection)  
        Dim enm As CodeEnum = _  
            CType(sel.ActivePoint.CodeElement( _  
            vsCMElement.vsCMElementEnum), CodeEnum)  

        ' Add a member to the enumeration.  
        enm.AddMember("TestMember")  
    Catch ex As Exception  
        MsgBox(ex.Message)  
    End Try  

End Sub  
public void AddMemberExample(DTE2 dte)  
{  
    // Before running this example, open a code document from a project  
    // and place the insertion point inside an enumeration.  
    try  
    {  
        // Retrieve the CodeEnum at the insertion point.  
        TextSelection sel =   
            (TextSelection)dte.ActiveDocument.Selection;  
        CodeEnum enm =   
            (CodeEnum)sel.ActivePoint.get_CodeElement(  
            vsCMElement.vsCMElementEnum);  

        // Add a member to the enumeration.  
        enm.AddMember("TestMember", null, -1);  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

AddMember adds a member to the enumeration and returns a CodeVariable object with IsConstant set to true.

When setting Value to a string, AddMember inserts any required syntax, such as equal signs or semicolons, if the variable does not already have an initialization expression. Depending on the languages and syntactic or semantic checks it performs on the passed-in string, setting this argument may fail. Languages are not required to check the string, and because the string is necessarily language-dependent, setting this argument could result in undefined behavior if the string has any ill-formed content.

When setting Value to a CodeElement, whether the CodeElement must be newly created depends on the language implementation of the code model. Some languages may implement copying semantics if you pass in a code element that is already in a source file.

The correctness of the arguments is determined by the language behind the code model.

Note

The values of code model elements, such as classes, structures, functions, attributes, delegates, cannot be relied upon to remain the same at all times. For more information, see the section Code Model Element Values Can Change in Discovering Code by Using the Code Model (Visual Basic).

Applies to