Partager via


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
Propriété publique Value Détermine la valeur de cet objet d'Variant.
Propriété publique Vt Détermine le type de l'objet d'Variant.

Début

Méthodes

  Nom Description
Méthode publique Equals Indique si cette instance et un objet spécifié sont égaux. (Hérité de ValueType.)
Méthode protégée 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.)
Méthode publique GetHashCode Retourne le code de hachage de cette instance. (Hérité de ValueType.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique ToChar Interprète la valeur de l'objet d'Variant comme caractère Unicode si le type variant est VT_UI2.
Méthode publique ToString Retourne le nom de type qualifié complet de cette instance. (Hérité de ValueType.)
Méthode publiqueMembre statique 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.

Voir aussi

Référence

Microsoft.VisualStudio.Package, espace de noms