Freigeben über


CodeFunction2.CanOverride-Eigenschaft

Ruft ab oder legt fest, ob die Funktion überschrieben werden kann.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Syntax

'Declaration
Property CanOverride As Boolean
bool CanOverride { get; set; }
property bool CanOverride {
    bool get ();
    void set (bool value);
}
abstract CanOverride : bool with get, set
function get CanOverride () : boolean 
function set CanOverride (value : boolean)

Eigenschaftswert

Typ: Boolean
Ein boolescher Wert, der true ist, wenn die Funktion überschrieben werden kann, andernfalls false.

Hinweise

  • In Visual Basic die Funktion deklariert wurde, mit MustOverride oder Overrideable.

  • Für Visual c# und Visual C++, die Funktion deklariert wurde, mit dem virtual Schlüsselwort.

  • JScript, die Funktion wurde nicht deklariert mit den static oder final Schlüsselwörter, d. h. die Methoden können implizit überschrieben werden.

Hinweis

Die Werte von Codemodellelementen wie z. B. Klassen, Strukturen, Funktionen, Attributen Delegaten usw. sind nach bestimmten Änderungen unter Umständen nicht deterministisch, d. h. deren Werte bleiben nicht zuverlässig immer gleich.Weitere Informationen finden Sie im Abschnitt "Codemodellelemente können sich ändern" in Ermitteln von Code über das Codemodell (Visual Basic).

Beispiele

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);
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

CodeFunction2 Schnittstelle

EnvDTE80-Namespace

Weitere Ressourcen

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell

Ermitteln von Code über das Codemodell (Visual Basic)

Ermitteln von Code über das Codemodell (Visual C#)