CodeClass.AddImplementedInterface(Object, Object) Méthode

Définition

Ajoute une interface à la liste d'objets hérités.

EnvDTE::CodeInterface AddImplementedInterface(winrt::Windows::Foundation::IInspectable const & Base, winrt::Windows::Foundation::IInspectable const & Position);
[System.Runtime.InteropServices.DispId(63)]
public EnvDTE.CodeInterface AddImplementedInterface (object Base, object Position);
[<System.Runtime.InteropServices.DispId(63)>]
abstract member AddImplementedInterface : obj * obj -> EnvDTE.CodeInterface
Public Function AddImplementedInterface (Base As Object, Optional Position As Object) As CodeInterface

Paramètres

Base
Object

Obligatoire. Interface que la classe doit implémenter. Il s'agit soit d'un objet CodeInterface, soit d'un nom de type qualifié complet.

Position
Object

Facultatif. Valeur par défaut = 0. Élément de code après lequel le nouvel élément doit être ajouté. Si la valeur est CodeElement, le nouvel élément est ajouté directement après.

Si la valeur est de type Long, AddImplementedInterface(Object, Object) indique l'élément après lequel le nouvel élément doit être ajouté.

Comme la comptabilisation des collections commence à 1, la transmission de la valeur 0 indique que le nouvel élément doit être placé au début de la collection. La valeur -1 signifie que l'élément doit être placé à la fin.

Retours

CodeInterface

Objet CodeInterface.

Attributs

Exemples

 Sub AddImplementedInterfaceExample(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)  
        Dim cm As CodeModel = _  
            cls.ProjectItem.ContainingProject.CodeModel  

        ' Add a new implemented interface to the class.  
        cls.AddImplementedInterface(ConvertFullName(cm, _  
            "System.IDisposable"))  
    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 AddImplementedInterfaceExample(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);  
        CodeModel cm = cls.ProjectItem.ContainingProject.CodeModel;  

        // Add a new implemented interface to the class.  
        cls.AddImplementedInterface(ConvertFullName(cm,   
            "System.IDisposable"), -1);  
    }  
    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;  
}  

Remarques

AddImplementedInterface Ajoute une référence à une interface que CodeClass implémente. AddImplementedInterface n’insère pas de stubs de méthode pour les membres d’interface.

Visual C++ nécessite le format séparé par deux-points (::) pour ses noms de types qualifiés complets. Tous les autres langages prennent en charge le format séparé par des points.

L’exactitude des arguments est déterminée par le langage derrière le modèle de code.

Notes

Les valeurs d'éléments de modèle de code, tels que des classes, des structures, des fonctions, des attributs, des délégués, etc., peuvent être non déterministes après certains types de modifications, ce qui signifie qu'il n'est pas certain que leurs valeurs resteront inchangées. Pour plus d’informations, consultez la section les valeurs d’élément de modèle de code peuvent changer dans la découverte de code à l’aide du modèle de code (Visual Basic).

S’applique à