Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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, le mot clé de type C# de la colonne gauche (sauf délégué et dynamique) est un 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
dynamic
sont 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 mot clé delegate
déclare un type dérivé de System.Delegate. Le type System.Delegate
est un type abstrait.
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
E
versSystem.ReadOnlySpan<U>
, lorsqueE
a une conversion par covariance ou une conversion d'identité versU
. - De
System.Span<E>
versSystem.ReadOnlySpan<U>
, lorsqueE
a une conversion de covariance ou une conversion d’identité versU
- De
System.ReadOnlySpan<E>
àSystem.ReadOnlySpan<U>
, lorsqueE
subit une conversion de covariance ou une conversion identitaire 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 premier argument des méthodes d’extension , le paramètre avec le modificateur this
. Les conversions d’étendue implicites ne sont pas prises en compte pour les conversions de groupes de méthodes.