Partilhar via


CodeDelegate2.Comment Property

Definition

Sets and gets the comment associated with the CodeDelegate2.

public:
 property System::String ^ Comment { System::String ^ get(); void set(System::String ^ value); };
public:
 property Platform::String ^ Comment { Platform::String ^ get(); void set(Platform::String ^ value); };
[System.Runtime.InteropServices.DispId(38)]
public string Comment { [System.Runtime.InteropServices.DispId(38)] [System.Runtime.InteropServices.TypeLibFunc(1024)] get; [System.Runtime.InteropServices.DispId(38)] [System.Runtime.InteropServices.TypeLibFunc(1024)] set; }
[<System.Runtime.InteropServices.DispId(38)>]
[<get: System.Runtime.InteropServices.DispId(38)>]
[<get: System.Runtime.InteropServices.TypeLibFunc(1024)>]
[<set: System.Runtime.InteropServices.DispId(38)>]
[<set: System.Runtime.InteropServices.TypeLibFunc(1024)>]
member this.Comment : string with get, set
Public Property Comment As String

Property Value

A string containing comments associated with the CodeDelegate2.

Implements

Attributes

Examples

Before running this example, load a project with a class and insert the following line along with the example code. After both the line and the example code are added, click the Delegate line to place the insertion point there, and then run the example.

[VisualBasic]

Delegate Sub MySubDelegate(ByVal x As Integer)  

[C#]

public delegate void MySubDelegate(int x);  

[VisualBasic]

Public Sub CodeDelegateExample(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 del As CodeDelegate2 = _  
            CType(sel.ActivePoint.CodeElement( _  
        vsCMElement.vsCMElementDelegate), CodeDelegate2)  
        Dim elem As CodeElement2  
        Dim sb As New System.Text.StringBuilder  

        ' Display the baseclass name of the delegate.  
        sb.AppendLine("Delegate base class name: " & _  
          del.BaseClass.Name)  
        sb.AppendLine("Delegate's access: " & del.Access.ToString)  
        sb.AppendLine("Children: " & del.Children.Count & "  _  
          Name: " & del.Children.Item(1).Name)  
        sb.AppendLine("Collection: " & del.Collection.Count)  
        sb.AppendLine("Delegates:")  
        For Each elem In del.Collection  
            sb.AppendLine("    - " & elem.Name)  
        Next  
        sb.AppendLine("Comment: " & del.Comment)  
        sb.AppendLine("Doc Comment: " & del.DocComment)  
        sb.AppendLine("DTE Parent: " & del.DTE.Name)  
        sb.AppendLine("Endpoint location: " & _  
          del.EndPoint.AbsoluteCharOffset)  
        sb.AppendLine("Infolocation: " & del.InfoLocation.ToString)  
        sb.AppendLine("Can provide CodeType object? " & _  
          del.IsCodeType.ToString)  
        sb.AppendLine("Is Delegate derived? " & _  
          del.IsDerivedFrom("EnvDTE80"))  
        sb.AppendLine("Is Delegate a generic? " & del.IsGeneric)  
        sb.AppendLine("Kind: " & del.Kind.ToString)  
        sb.AppendLine("Authoring language: " & _  
          del.Language.ToString)  
        sb.AppendLine("Name: " & del.Name)  
        sb.AppendLine("Namespace: " + del.Namespace.Name);  
        sb.AppendLine("Parameters: " & del.Parameters.Item(1).Name)  
        sb.AppendLine("Project containing the delegate: " & _  
          del.ProjectItem.Name)  
        sb.AppendLine("Prototype for delegate: " & del.Prototype)  
        sb.AppendLine("Delegate start point offset: " & _  
          del.StartPoint.LineCharOffset)  
        sb.AppendLine("Type: " & del.Type.TypeKind.ToString)  
        MsgBox(sb.ToString)  

    Catch ex As System.Exception  
        MsgBox(ex.ToString)  
    End Try  
End Sub  

[C#]

public void CodeDelegateExample(DTE2 DTE)  
{  
    try  
    {  
        // Retrieve the CodeClass at the insertion point.  
        TextSelection sel = (TextSelection)   
          DTE.ActiveDocument.Selection;  
        CodeDelegate2 del = (CodeDelegate2)   
          sel.ActivePoint.get_CodeElement  
          (vsCMElement.vsCMElementDelegate);  
        System.Text.StringBuilder sb = new System.Text.StringBuilder();  
        // Display the baseclass name of the delegate.  
        sb.AppendLine("Delegate base class name: " +   
          del.BaseClass.Name);  
        sb.AppendLine("Delegate's access: " + del.Access);  
        sb.AppendLine("Children: "+del.Children.Count+"  Name:   
          "+del.Children.Item(1).Name);  
        sb.AppendLine("Collection: "+del.Collection.Count);  
        sb.AppendLine("Delegates:");  
        foreach (CodeElement2 elem in del.Collection )  
        {  
            sb.AppendLine("    - "+elem.Name);  
        }  
        sb.AppendLine("Comment: "+del.Comment);  
        sb.AppendLine("Attributes:");   
        foreach (CodeElement2 elem in del.Attributes)  
        {  
            sb.AppendLine("    - " + elem.Name);  
        }  
        sb.AppendLine("Bases:");  
        foreach (CodeElement2 elem in del.Bases)  
        {  
            sb.AppendLine("    - " + elem.Name);  
        }   
        sb.AppendLine("Doc Comment: " + del.DocComment);  
        sb.AppendLine("DTE Parent: "+del.DTE.Name);  
        sb.AppendLine("Endpoint location:   
          "+del.EndPoint.AbsoluteCharOffset);  
        sb.AppendLine("Infolocation: "+del.InfoLocation);  
        sb.AppendLine("Can provide CodeType object? "+del.IsCodeType);  
        sb.AppendLine("Is Delegate derived?   
          "+del.get_IsDerivedFrom("EnvDTE80"));  
        sb.AppendLine("Is Delegate a generic? "+del.IsGeneric);  
        sb.AppendLine("Kind: "+del.Kind);  
        sb.AppendLine("Authoring language: "+del.Language);  
        sb.AppendLine("Name: "+del.Name);  
        sb.AppendLine("Parameters: "+del.Parameters.Item(1).Name);  
        sb.AppendLine("Namespace: " + del.Namespace.Name);  
        sb.AppendLine("Project containing the delegate:   
          "+del.ProjectItem.Name);  
        sb.AppendLine("Delegate start point offset:   
          "+del.StartPoint.LineCharOffset);  
        sb.AppendLine("Type: "+del.Type.TypeKind);  
          MessageBox.Show(sb.ToString());  
    }  
    catch(System.Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

Comment sets or returns the header comment. When returned, the text does not contain any comment syntax. The text is derived from the source, based on the language's comment style, to specify how many previous versions of the source's comments qualify as header comment for a delegate.

When set, Comment attempts to maintain the style of any existing comment by using line-oriented syntax versus delimited syntax. For example, Comment preserves indentation prior to line-oriented syntax, preserves whether the comment touches the delegate or is separated from the delegate by a blank line, and so forth.

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. For more information, see the section Code Model Element Values Can Change in Discovering Code by Using the Code Model (Visual Basic).

Applies to