Partager via


CodeFunction2.Prototype[Int32] Property

Definition

Gets a string holding the stub definition of this object.

public:
 property System::String ^ Prototype[int] { System::String ^ get(int Flags); };
[System.Runtime.InteropServices.DispId(34)]
public string Prototype[int Flags = 0] { [System.Runtime.InteropServices.DispId(34)] [System.Runtime.InteropServices.TypeLibFunc(1024)] get; }
[<System.Runtime.InteropServices.DispId(34)>]
[<get: System.Runtime.InteropServices.DispId(34)>]
[<get: System.Runtime.InteropServices.TypeLibFunc(1024)>]
member this.Prototype(int) : string
Public ReadOnly Property Prototype(Optional Flags As Integer = 0) As String

Parameters

Flags
Int32

Optional. A vsCMPrototype value that indicates the contents of the string, such as only parameter names, parameter types, whole unique signature, and so forth. All flags are set to Off by default.

Property Value

The stub definition of this CodeFunction.

Implements

Attributes

Examples

Sub PrototypeExample(ByVal dte As DTE2)  

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

        Dim ovrloads As String  
        If fun.IsOverloaded Then  
            ' Display all the overloads.  
            Dim ovrload As CodeFunction  
            For Each ovrload In fun.Overloads  
                ovrloads &= ovrload.Prototype( _  
                    vsCMPrototype.vsCMPrototypeParamNames Or _  
                    vsCMPrototype.vsCMPrototypeParamTypes Or _  
                    vsCMPrototype.vsCMPrototypeType) & vbCrLf  
            Next  
            MsgBox(fun.Name & " has the following overloads:" & _  
                vbCrLf & vbCrLf & ovrloads)  
        Else  
            MsgBox(fun.Name & " isn't overloaded.")  
        End If  
    Catch ex As Exception  
        MsgBox(ex.Message)  
    End Try  

End Sub  
public void PrototypeExample(DTE2 dte)  
{  
    // Before running this example, open a code document from a project  
    // and place the insertion point inside a function.  
    try  
    {  
        // Retrieve the CodeFunction at the insertion point.  
        TextSelection sel =   
            (TextSelection)dte.ActiveDocument.Selection;  
        CodeFunction fun =   
            (CodeFunction)sel.ActivePoint.get_CodeElement(  
            vsCMElement.vsCMElementFunction);  
        string ovrloads = "";  

        if (fun.IsOverloaded)  
        {  
            // Display all the overloads.  
            foreach (CodeFunction ovrload in fun.Overloads)  
            {  
                ovrloads += ovrload.get_Prototype(  
                    (int)(vsCMPrototype.vsCMPrototypeParamNames |   
                    vsCMPrototype.vsCMPrototypeParamTypes |   
                    vsCMPrototype.vsCMPrototypeType)) + "\n";  
            }  

            MessageBox.Show(fun.Name +   
                " has the following overloads:\n\n" + ovrloads);  
        }  
        else  
        {  
            MessageBox.Show(fun.Name + " isn't overloaded.");  
        }  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

Note

The values of code model elements such as classes, structs, functions, attributes, delegates, and so forth can be non-deterministic after making certain kinds of edits, meaning that their values cannot be relied upon to always remain the same.

Applies to