Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Le tableau suivant répertorie les types valeur C# intégrés par catégorie :
Le tableau suivant répertorie les types référence C# intégrés par catégorie :
| Mot clé de type C# | Type .NET |
|---|---|
object |
System.Object |
string |
System.String |
delegate |
System.Delegate |
dynamic |
System.Object |
Dans les tableaux précédents, la plupart des mots clés de type C# de la colonne gauche sont des alias pour le type .NET correspondant. Ils sont interchangeables. Par exemple, les déclarations suivantes déclarent des variables du même type :
int a = 123;
System.Int32 b = 123;
Le type dynamic est similaire à object. Les principales différences sont les suivantes :
- Les opérations sur une expression
dynamicsont liées au moment de l’exécution, et non au moment de la compilation. - Vous ne pouvez pas utiliser
new dynamic(). - Vous ne pouvez pas dériver un type du type
dynamic.
Le delegate mot clé est un mot clé de type de référence intégré qui déclare un type dérivé de System.Delegate. Contrairement aux autres mots clés de type intégrés, delegate n’est pas un alias pour un type .NET spécifique. Au lieu de cela, il déclare des types personnalisés qui dérivent du type abstrait System.Delegate . De même, dynamic représente le comportement de liaison d’exécution plutôt que d’être un alias direct pour un type .NET spécifique.
Le mot clé void représente l’absence d’un type. Vous l’utilisez comme type de retour d’une méthode qui ne retourne pas de valeur.
Le langage C# inclut des règles spécialisées pour les types System.Span<T> et System.ReadOnlySpan<T>. Ces types ne sont pas classés comme des types intégrés, car il n’existe pas de mots clés C# qui correspondent à ces types. Le langage C# définit des conversions implicites à partir de types de tableaux et du type de chaîne en Span<T> et ReadOnlySpan<T>. Ces conversions intègrent les types Span dans des contextes de programmation plus naturels. Les conversions suivantes sont définies comme étant des conversions span implicites :
- À partir de n’importe quel tableau unidimensionnel avec un type d’élément
EàSystem.Span<E> - Depuis n'importe quel tableau unidimensionnel dont le type d'élément est
EversSystem.ReadOnlySpan<U>, lorsqueEa une conversion par covariance ou une conversion d'identité versU. - De
System.Span<E>versSystem.ReadOnlySpan<U>, lorsqueEa une conversion de covariance ou une conversion d’identité versU - De
System.ReadOnlySpan<E>versSystem.ReadOnlySpan<U>, lorsqueEa une conversion de covariance ou une conversion d’identité versU - De
stringàSystem.ReadOnlySpan<char>
Le compilateur n’ignore jamais toute conversion définie par l’utilisateur lorsqu'il existe une conversion de portée implicite applicable . Les conversions d’étendue implicites peuvent être appliquées au paramètre récepteur des membres d’extension. Le paramètre de récepteur est spécifié par le extension mot clé dans un membre d’extension. Le paramètre de récepteur est le premier paramètre d’une méthode d’extension à l’aide du this modificateur. Les conversions d’étendue implicites ne sont pas prises en compte pour les conversions de groupes de méthodes.