CodeTypeReference.BaseType Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit le nom du type référencé.
public:
property System::String ^ BaseType { System::String ^ get(); void set(System::String ^ value); };
public string BaseType { get; set; }
member this.BaseType : string with get, set
Public Property BaseType As String
Valeur de propriété
Nom du type référencé.
Remarques
Cette propriété contient le nom du type, sauf s’il s’agit d’un type tableau, auquel cas il s’agit du type d’élément de tableau.
Notes
Le nom de la propriété peut être trompeur. Cette propriété contient uniquement le nom de type avec les ornements de tableau ou les arguments de type générique supprimés, et non le type de base ou parent comme prévu. Par exemple, la BaseType valeur de System.Collections.Generic.Dictionary`2[[System.String], [System.Collections.Generic.List`1[[System.Int32]]]]
est System.Collections.Generic.Dictionary`2
.
Représentation des types génériques
Les informations contenues dans cette section sont destinées aux développeurs de fournisseurs CodeDom et s’appliquent uniquement aux langages conformes CLS. La valeur de retour peut contenir des types génériques. Les types génériques sont mis en forme avec le nom du type suivi d’un accent grave (« ' ») suivi d’un nombre d’arguments de type générique. Les arguments de type générique se trouvent dans le CodeTypeReferenceCollection retourné par la TypeArguments propriété . Les valeurs retournées par BaseType et associées TypeArguments contiennent le même contenu que la valeur du type retourné par la réflexion.
Par exemple, une construction Dictionary<TKey,TValue> où K
est une chaîne et V
est une construction List<T> d’entiers est représentée par la réflexion comme suit (avec les informations d’assembly supprimées) :
System.Collections.Generic.Dictionary`2[[System.String], [System.Collections.Generic.List`1[[System.Int32]]]]
L’analyse récursive de la BaseType propriété à partir de pour CodeTypeReferenceDictionary<TKey,TValue> génère les mêmes chaînes que la représentation de réflexion ci-dessus :
La BaseType propriété du parent CodeTypeReference retourne ce qui suit :
System.Collections.Generic.Dictionary`2
La BaseType propriété du premier CodeTypeReference objet de la TypeArguments collection retourne les éléments suivants :
System.String
La BaseType propriété du deuxième CodeTypeReference objet de la TypeArguments collection retourne ce qui suit :
System.Collections.Generic.List`1
La TypeArguments propriété dans l’objet CodeTypeReference pour
System.Collections.Generic.List`1
retourne les éléments suivants :System.Int32
Le nombre d’arguments de type doit être utilisé lors de l’analyse des valeurs associées TypeArguments . La pratique courante consiste à supprimer le nombre d’arguments de type du code généré, mais la pratique est propre au compilateur. Il est important de noter que le nombre d’arguments de type se trouve dans un nom de type imbriqué, auquel cas il est suivi d’un signe plus (« + »).
Notes
Lors de la création d’un générique CodeTypeReference, la pratique recommandée consiste à spécifier les arguments de type en tant qu’objets CodeTypeReference ou à utiliser le constructeur qui prend un Type. L’utilisation du constructeur qui crée un CodeTypeReference à partir d’une chaîne peut entraîner des erreurs d’argument de type non détectables.