FileCodeModel.AddClass, méthode
Crée une construction de code de classe et insère le code à l'emplacement approprié.
Espace de noms : EnvDTE
Assembly : EnvDTE (dans EnvDTE.dll)
Syntaxe
'Déclaration
Function AddClass ( _
Name As String, _
Position As Object, _
Bases As Object, _
ImplementedInterfaces As Object, _
Access As vsCMAccess _
) As CodeClass
CodeClass AddClass(
string Name,
Object Position,
Object Bases,
Object ImplementedInterfaces,
vsCMAccess Access
)
CodeClass^ AddClass(
String^ Name,
Object^ Position,
Object^ Bases,
Object^ ImplementedInterfaces,
vsCMAccess Access
)
abstract AddClass :
Name:string *
Position:Object *
Bases:Object *
ImplementedInterfaces:Object *
Access:vsCMAccess -> CodeClass
function AddClass(
Name : String,
Position : Object,
Bases : Object,
ImplementedInterfaces : Object,
Access : vsCMAccess
) : CodeClass
Paramètres
- Name
Type : System.String
Obligatoire.Nom de la classe.
- Position
Type : System.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 un type de données Long, AddClass indique l'élément après lequel le nouvel élément doit être ajouté.
Comme la comptabilisation des collections commence à 1, passer 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.
- Bases
Type : System.Object
Facultatif.Valeur par défaut = 0.SafeArray de noms de types qualifiés complets ou d'objets CodeClass dont la nouvelle classe hérite ses implémentations.
- ImplementedInterfaces
Type : System.Object
Facultatif.Valeur par défaut = 0.SafeArray de noms de types qualifiés complets ou d'objets CodeInterface, représentant chacun les interfaces que la nouvelle classe promet d'implémenter.
- Access
Type : EnvDTE.vsCMAccess
Facultatif.Constante vsCMAccess.
Valeur de retour
Type : EnvDTE.CodeClass
Objet CodeClass.
Notes
L'exactitude des arguments est déterminée par le langage, au-delà du modèle de code.
Exemples
Sub AddClassExample2(ByVal dte As DTE2)
' Before running this example, open a code document from a project.
Try
Dim projItem As ProjectItem = dte.ActiveDocument.ProjectItem
Dim cm As CodeModel = projItem.ContainingProject.CodeModel
' Initialize the base classes array and the implemented
' interfaces array.
Dim bases() As Object = {ConvertFullName(cm, "System.Object")}
Dim interfaces() As Object = { _
ConvertFullName(cm, "System.IDisposable"), _
ConvertFullName(cm, "System.IComparable") _
}
' Create a new class.
projItem.FileCodeModel.AddClass("TestClass", , bases, _
interfaces)
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 AddClassExample2(DTE2 dte)
{
// Before running this example, open a code document from
// a project.
try
{
ProjectItem projItem = dte.ActiveDocument.ProjectItem;
CodeModel cm = projItem.ContainingProject.CodeModel;
// Initialize the base classes array and the implemented
// interfaces array.
object[] bases = {ConvertFullName(cm, "System.Object")};
object[] interfaces = {
ConvertFullName(cm, "System.IDisposable"),
ConvertFullName(cm, "System.IComparable")
};
// Create a new class.
projItem.FileCodeModel.AddClass("TestClass", -1, bases,
interfaces, vsCMAccess.vsCMAccessPublic);
}
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;
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
Autres ressources
Comment : compiler et exécuter les exemples de code du modèle objet Automation