Metoda CodeClass.RemoveBase —

Usuwa obiekt z listy baz.

Przestrzeń nazw:  EnvDTE
Zestaw:  EnvDTE (w EnvDTE.dll)

Składnia

'Deklaracja
Sub RemoveBase ( _
    Element As Object _
)
void RemoveBase(
    Object Element
)
void RemoveBase(
    Object^ Element
)
abstract RemoveBase : 
        Element:Object -> unit
function RemoveBase(
    Element : Object
)

Parametry

  • Element
    Typ: Object

    Wymagane.A CodeElement lub nazwa jednej z nich w kolekcji.

Uwagi

Wymagane.A CodeElement lub nazwa jednej z nich w kolekcji.

Element usunięty może być albo CodeElement obiekt, który znajduje się w kolekcji lub nazwę unikatowy element w kolekcji.

[!UWAGA]

Po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie może polegać na zawsze pozostawać taki sam może być nie deterministyczny wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odnajdowanie kodu za pomocą modelu kodu (Visual Basic).

Przykłady

 Sub RemoveBaseExample(ByVal dte As DTE2)

    ' NOTE: This example requires a reference to the 
    '       System.Collections namespace.

    ' 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)

        If MsgBox("Remove all bases from " & cls.Name & "?", _
            MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            ' Remove every base except System.Object.
            Dim bases As New ArrayList()
            Dim base As CodeElement
            For Each base In cls.Bases
                If base.FullName <> ConvertFullName( _
                    cls.ProjectItem.ContainingProject.CodeModel, _
                    "System.Object") Then
                    bases.Add(base)
                End If
            Next

            For Each base In bases
                cls.RemoveBase(base)
            Next
        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

Function ConvertFullName(ByVal cm As CodeModel, _
    ByVal fullName As String) As String

    ' Convert a .NET type name into a C++ type name.
    If (cm.Language = CodeModelLanguageConstants.vsCMLanguageVC) Or _
        (cm.Language = CodeModelLanguageConstants.vsCMLanguageMC) Then
        Return fullName.Replace(".", "::")
    Else
        Return fullName
    End If

End Function
public void RemoveBaseExample(DTE2 dte)
{
    // NOTE: This example requires a reference to the 
    //       System.Collections namespace.

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

        if (MessageBox.Show("Remove all bases from " + cls.Name + "?", 
            "", MessageBoxButtons.YesNo) == DialogResult.Yes)
        {
            // Remove every base except System.Object.
            ArrayList bases = new ArrayList();
            
            foreach (CodeElement baseElement in cls.Bases)
            {
                if (baseElement.FullName != ConvertFullName(
                    cls.ProjectItem.ContainingProject.CodeModel, 
                    "System.Object"))
                    bases.Add(baseElement);
            }

            foreach (CodeElement baseElement in bases)
                cls.RemoveBase(baseElement);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

string ConvertFullName(CodeModel cm, string fullName)
{
    // Convert a .NET type name into a C++ type name.
    if ((cm.Language == CodeModelLanguageConstants.vsCMLanguageVC) || 
        (cm.Language == CodeModelLanguageConstants.vsCMLanguageMC))
        return fullName.Replace(".", "::");
    else
        return fullName;
}

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

CodeClass Interfejs

Przestrzeń nazw EnvDTE

Inne zasoby

Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady

Odnajdowanie kodu za pomocą modelu kodu (Visual Basic)

Odnajdowanie kodu za pomocą modelu kodu (Visual C#)