Metodo CodeClass2.AddBase
Aggiunge un elemento all'elenco degli oggetti ereditati.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
Function AddBase ( _
Base As Object, _
Position As Object _
) As CodeElement
CodeElement AddBase(
Object Base,
Object Position
)
CodeElement^ AddBase(
Object^ Base,
Object^ Position
)
abstract AddBase :
Base:Object *
Position:Object -> CodeElement
function AddBase(
Base : Object,
Position : Object
) : CodeElement
Parametri
Base
Tipo: ObjectObbligatorio. Classe da cui derivare l'implementazione, un oggetto CodeClass o un nome di tipo completo. Il linguaggio nativo Visual C ++ richiede il formato separato dai due punti (::) per i nomi di tipo completi. In tutti gli altri linguaggi viene utilizzato il formato separato dal punto.
Position
Tipo: ObjectFacoltativa. Valore predefinito = 0. Elemento di codice dopo il quale deve essere aggiunta la nuova base.
Se il valore è un tipo di dati Long, Position indicherà l'elemento dopo il quale deve essere aggiunta la nuova base.
Poiché nelle raccolte il conteggio inizia da 1, il valore 0 indica che il nuovo elemento deve essere inserito all'inizio della raccolta. Il valore -1 indica invece che l'elemento deve essere inserito alla fine.
Valore restituito
Tipo: CodeElement
Oggetto CodeElement.
Note
Il metodo AddBase restituisce un oggetto CodeElement anziché CodeType per consentire l'utilizzo di codice Visual C++. La proprietà Kind dell'oggetto restituito è vsCMElementVCBase per l'implementazione di Visual C++.
Nota
I valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori.Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).
Esempi
[Visual Basic]
Sub AddBaseExample(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
' Create a fully qualified base name.
Dim baseName As String = ConvertFullName(cm, _
"System.Collections.CollectionBase")
' Add a base to the class.
cls.AddBase(baseName)
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
[C#]
public void AddBaseExample(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;
// Create a fully qualified base name.
string baseName = ConvertFullName(cm,
"System.Collections.CollectionBase");
// Add a base to the class.
cls.AddBase(baseName, -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;
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per altre informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Altre risorse
Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione
Individuazione di codice mediante il modello di codice (Visual Basic)
Individuazione di codice mediante il modello di codice (Visual C#)