CodeClass2.AddStruct – metoda
Vytvoří nové struktury ve třídě.
Obor názvů: EnvDTE80
Sestavení: EnvDTE80 (v EnvDTE80.dll)
Syntaxe
'Deklarace
Function AddStruct ( _
Name As String, _
Position As Object, _
Bases As Object, _
ImplementedInterfaces As Object, _
Access As vsCMAccess _
) As CodeStruct
CodeStruct AddStruct(
string Name,
Object Position,
Object Bases,
Object ImplementedInterfaces,
vsCMAccess Access
)
CodeStruct^ AddStruct(
String^ Name,
Object^ Position,
Object^ Bases,
Object^ ImplementedInterfaces,
vsCMAccess Access
)
abstract AddStruct :
Name:string *
Position:Object *
Bases:Object *
ImplementedInterfaces:Object *
Access:vsCMAccess -> CodeStruct
function AddStruct(
Name : String,
Position : Object,
Bases : Object,
ImplementedInterfaces : Object,
Access : vsCMAccess
) : CodeStruct
Parametry
Name
Typ: StringPovinné.Název nové struktury.
Position
Typ: ObjectVolitelné.Výchozí = 0.Prvek kódu, po které chcete přidat nový prvek.
Pokud je hodnota typ dat Long, pak bude Position metoda určuje prvek, po které chcete přidat nový prvek.
Vzhledem k tomu, že kolekce začne jejich počet na 1, předávání 0 označuje, že nový prvek mají být umístěny na začátek kolekce.Hodnota-1 znamená prvek by měla být umístěna na konci.
Bases
Typ: ObjectPovinné.Výchozí hodnota je Nothing.Varianty, která obsahuje SafeArray typu plně kvalifikované názvy nebo CodeInterface objektů, které dědí nové struktury.
ImplementedInterfaces
Typ: ObjectPovinné.Výchozí hodnota je Nothing.Pole SafeArray typu plně kvalifikované názvy nebo CodeInterface objekty, které představují rozhraní, která slibuje nové třídy implementace.
Access
Typ: vsCMAccessVolitelné.A vsCMAccess konstantní.
Vrácená hodnota
Typ: CodeStruct
Objekt CodeStruct.
Poznámky
Nativní Visual C++ vyžaduje oddělené dvojtečkou (::) formát pro jeho úplný zadejte jména.Všechny jazyky podporují formát oddělených.
Správnosti argumentů je určen jazykem, za model kódu.
[!POZNÁMKA]
Není deterministický může být po provedení určité typy úprav, což znamená, že jejich hodnoty nelze dovolávat vždy zůstat stejné hodnoty prvků modelu kód jako třídy, struktury, funkce, atributy, delegátů a tak dále.Další informace naleznete v části Změna hodnoty prvků modelu kód Zjišťování kódu pomocí modelu kódu (Visual Basic).
Příklady
[Visual Basic]
Sub AddStructExample(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 struct.
cm.AddStruct("TestStruct", projItem.Name, , 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
[C#]
public void AddStructExample(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 struct.
cm.AddStruct("TestStruct", projItem.Name, -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;
}
Zabezpečení rozhraní .NET Framework
- Plná důvěra přímému volajícímu. Částečně zabezpečený kód nemůže tento člen použít. Další informace naleznete v tématu Používání knihoven z částečně důvěryhodného kódu.
Viz také
Referenční dokumentace
Další zdroje
Postupy: Kompilace a spuštění příkladů kódu objektu automatizace