Variant, structure
Représente un objet qui peut être interprété en tant que plusieurs type.
Cette API n'est pas conforme CLS. L'alternative conforme CLS est [None].
Espace de noms : Microsoft.VisualStudio.Package
Assemblys : Microsoft.VisualStudio.Package.LanguageService.9.0 (dans Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService.11.0 (dans Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService (dans Microsoft.VisualStudio.Package.LanguageService.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (dans Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Syntaxe
'Déclaration
<CLSCompliantAttribute(False)> _
Public Structure Variant
[CLSCompliantAttribute(false)]
public struct Variant
Le type Variant expose les membres suivants.
Propriétés
Nom | Description | |
---|---|---|
Value | Détermine la valeur de cet objet d'Variant. | |
Vt | Détermine le type de l'objet d'Variant. |
Début
Méthodes
Nom | Description | |
---|---|---|
Equals | Indique si cette instance et un objet spécifié sont égaux. (Hérité de ValueType.) | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Retourne le code de hachage de cette instance. (Hérité de ValueType.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
ToChar | Interprète la valeur de l'objet d'Variant comme caractère Unicode si le type variant est VT_UI2. | |
ToString | Retourne le nom de type qualifié complet de cette instance. (Hérité de ValueType.) | |
ToVariant | Convertit l'objet variant donné à un objet de classe d'Variant. |
Début
Remarques
Cette version de la structure variante est spécifique aux classes managées (MPF) de service de langage d'infrastructure de package et est conçue pour convertir principalement un variant à un personnage.Plus spécifiquement, si la variante a le type VT_UI2, l'objet variant est converti à un personnage.
Cette structure est utilisée en fait à un seul emplacement dans les classes de service de langage de MPF, la méthode d'HandlePreExec de classe d'ViewFilter.Cette structure est utilisée pour convertir le variant entrante à un personnage si le type de commande est TYPECHAR.
Remarques à l'attention des implémenteurs
C'est une structure limitée et vous n'avez rien à substituer.
Remarques à l'attention des appelants
C'est une structure et peut être traitée comme type de variable.Elle a limité la fonctionnalité, principalement conçue pour convertir d'un objet variant à un personnage.
Exemples
Cet exemple montre comment la classe de MPF ViewFilter utilise cette structure d'Variant pour convertir un objet variant entrant à un personnage.
namespace Microsoft.VisualStudio.Package
{
[CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ViewFilter
: IVsTextViewFilter
, IVsTextViewEvents
, IOleCommandTarget
, IDisposable
{
public virtual void HandlePostExec(ref Guid guidCmdGroup,
uint nCmdId,
uint nCmdexecopt,
IntPtr pvaIn,
IntPtr pvaOut)
{
if (guidCmdGroup == VsMenus.guidStandardCommandSet2K) {
VsCommands2K cmd = (VsCommands2K)nCmdId;
char ch = '\0';
if (cmd == VsCommands2K.TYPECHAR && pvaIn != IntPtr.Zero) {
Variant v = Variant.ToVariant(pvaIn);
ch = v.ToChar();
// Do something with the character
}
}
}
}
}
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.