C # - Types de données

Les variables en C # sont classées dans les types suivants -

  • Types de valeur
  • Types de référence
  • Types de pointeurs

Type de valeur

Les variables de type valeur peuvent recevoir une valeur directement. Ils sont dérivés de la classe System.ValueType.

Les types valeur contiennent directement des données. Quelques exemples sontint, char, and float, qui stocke respectivement les nombres, les alphabets et les nombres à virgule flottante. Lorsque vous déclarez unint type, le système alloue de la mémoire pour stocker la valeur.

Le tableau suivant répertorie les types de valeur disponibles dans C # 2010 -

Type Représente Intervalle Valeur par défaut
booléen Valeur booléenne Vrai ou faux Faux
octet Entier non signé 8 bits 0 à 255 0
carboniser Caractère Unicode 16 bits U +0000 à U + ffff «\ 0»
décimal Valeurs décimales précises de 128 bits avec 28 à 29 chiffres significatifs (-7,9 x 10 28 à 7,9 x 10 28 ) / 10 0 à 28 0,0 M
double Type à virgule flottante double précision 64 bits (+/-) 5,0 x 10-324 à (+/-) 1,7 x 10308 0.0D
flotte Type à virgule flottante simple précision 32 bits -3,4 x 10 38 à + 3,4 x 10 38 0.0F
int Type d'entier signé 32 bits -2 147 483 648 à 2 147 483 647 0
longue Type d'entier signé 64 bits -9,223,372,036,854,775,808 à 9,223,372,036,854,775,807 0L
sbyte Type d'entier signé 8 bits -128 à 127 0
court Type d'entier signé 16 bits -32 768 à 32 767 0
uint Type entier non signé 32 bits 0 à 4 294 967 295 0
ulong Type entier non signé 64 bits 0 à 18,446,744,073,709,551,615 0
ushort Type entier non signé 16 bits 0 à 65 535 0

Pour obtenir la taille exacte d'un type ou d'une variable sur une plateforme particulière, vous pouvez utiliser le sizeofméthode. L'expression sizeof (type) donne la taille de stockage de l'objet ou du type en octets. Voici un exemple pour obtenir la taille du type int sur n'importe quelle machine -

using System;

namespace DataTypeApplication {
   class Program {
      static void Main(string[] args) {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Size of int: 4

Type de référence

Les types de référence ne contiennent pas les données réelles stockées dans une variable, mais ils contiennent une référence aux variables.

En d'autres termes, ils font référence à un emplacement mémoire. En utilisant plusieurs variables, les types de référence peuvent faire référence à un emplacement mémoire. Si les données de l'emplacement mémoire sont modifiées par l'une des variables, l'autre variable reflète automatiquement ce changement de valeur. Exemple debuilt-in les types de référence sont: object, dynamic, et string.

Type d'objet

le Object Typeest la classe de base ultime pour tous les types de données dans C # Common Type System (CTS). Object est un alias de la classe System.Object. Les types d'objet peuvent se voir attribuer des valeurs de tout autre type, type valeur, type référence, type prédéfini ou défini par l'utilisateur. Cependant, avant d'attribuer des valeurs, il nécessite une conversion de type.

Lorsqu'un type valeur est converti en type objet, il est appelé boxing et d'autre part, lorsqu'un type d'objet est converti en type valeur, il est appelé unboxing.

object obj;
obj = 100; // this is boxing

Type dynamique

Vous pouvez stocker n'importe quel type de valeur dans la variable de type de données dynamique. La vérification de type pour ces types de variables a lieu au moment de l'exécution.

La syntaxe pour déclarer un type dynamique est -

dynamic <variable_name> = value;

Par exemple,

dynamic d = 20;

Les types dynamiques sont similaires aux types d'objet, sauf que la vérification de type pour les variables de type d'objet a lieu au moment de la compilation, tandis que celle des variables de type dynamique a lieu au moment de l'exécution.

Type de chaîne

le String Typevous permet d'affecter des valeurs de chaîne à une variable. Le type chaîne est un alias de la classe System.String. Il est dérivé du type d'objet. La valeur d'un type chaîne peut être attribuée à l'aide de littéraux de chaîne sous deux formes: entre guillemets et @ guillemets.

Par exemple,

String str = "Tutorials Point";

Un littéral de chaîne @quoted ressemble à ceci -

@"Tutorials Point";

Les types de référence définis par l'utilisateur sont: classe, interface ou délégué. Nous discuterons de ces types dans un chapitre ultérieur.

Type de pointeur

Les variables de type pointeur stockent l'adresse mémoire d'un autre type. Les pointeurs en C # ont les mêmes capacités que les pointeurs en C ou C ++.

La syntaxe pour déclarer un type de pointeur est -

type* identifier;

Par exemple,

char* cptr;
int* iptr;

Nous discuterons des types de pointeurs dans le chapitre «Codes non sécurisés».