CodeFunction2.CanOverride Property

Definition

Gets or sets whether or not the function can be overridden.

public:
 property bool CanOverride { bool get(); void set(bool value); };
public:
 property bool CanOverride { bool get(); void set(bool value); };
[System.Runtime.InteropServices.DispId(50)]
public bool CanOverride { [System.Runtime.InteropServices.DispId(50)] get; [System.Runtime.InteropServices.DispId(50)] set; }
[<System.Runtime.InteropServices.DispId(50)>]
[<get: System.Runtime.InteropServices.DispId(50)>]
[<set: System.Runtime.InteropServices.DispId(50)>]
member this.CanOverride : bool with get, set
Public Property CanOverride As Boolean

Property Value

A Boolean value that is true if the function can be overridden; otherwise, false.

Implements

Attributes

Examples

Sub CanOverrideExample(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)  

        ' Find the class's overridable methods.  
        Dim ovrrides As String  
        Dim elem As CodeElement  
        For Each elem In cls.Members  
            If elem.Kind = vsCMElement.vsCMElementFunction AndAlso _  
                CType(elem, CodeFunction).CanOverride Then  
                ovrrides &= elem.Name & vbCrLf  
            End If  
        Next  

        MsgBox(cls.Name & " has the following overridable methods:" & _  
            vbCrLf & vbCrLf & ovrrides)  
    Catch ex As Exception  
        MsgBox(ex.Message)  
    End Try  

End Sub  
public void CanOverrideExample(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);  

        // Find the class's overridable methods.  
        string overrides = "";  

        foreach (CodeElement elem in cls.Members)  
        {  
            if ((elem.Kind == vsCMElement.vsCMElementFunction) &&   
                ((CodeFunction)elem).CanOverride)  
                overrides += elem.Name + "\r\n";  
        }  

        MessageBox.Show(cls.Name +   
            " has the following overridable methods:" + "\r\n\r\n" +   
            overrides);  
    }  
    catch (Exception ex)  
    {  
        MessageBox.Show(ex.Message);  
    }  
}  

Remarks

  • For Visual Basic, the function was declared with MustOverride or Overrideable.

  • For Visual C# and Visual C++, the function was declared with the virtual keyword.

  • For JScript, the function was not declared with the static or final keywords; that is, the methods can be implicitly overridden.

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