Latest web development tutorials

# types de données C

En C #, les variables sont divisés dans les catégories suivantes:

  • Type de valeur (types de valeur)
  • Type de référence (types de référence)
  • type Pointer (types Pointer)

Type de valeur (types de valeur)

variables de type valeur peut être affectée une valeur. Ils sont dérivés de la classeSystem.ValueType.

Les types de valeur contiennent directement des données. Tels queint, char, float, ils sont stockés des chiffres, des lettres, nombre à virgule flottante.Lorsque vous déclarez un typeint, le système alloue de la mémoire pour stocker la valeur.

Le tableau suivant présente les valeurs disponibles de type C # 2010:

类型描述范围默认值
bool布尔值True 或 FalseFalse
byte8 位无符号整数0 到 2550
char16 位 Unicode 字符U +0000 到 U +ffff'\0'
decimal128 位精确的十进制值,28-29 有效位数(-7.9 x 10 28 到 7.9 x 10 28 ) / 10 0 到 28 0.0M
double64 位双精度浮点型(+/-)5.0 x 10 -324 到 (+/-)1.7 x 10 308 0.0D
float32 位单精度浮点型-3.4 x 10 38 到 + 3.4 x 10 38 0.0F
int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
long64 位有符号整数类型-923,372,036,854,775,808 到 9,223,372,036,854,775,807 0L
sbyte8 位有符号整数类型-128 到 1270
short16 位有符号整数类型-32,768 到 32,7670
uint32 位无符号整数类型0 到 4,294,967,2950
ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
ushort16 位无符号整数类型0 到 65,5350

Pour obtenir un type exact ou une taille variable sur une plate - forme particulière, vous pouvez utiliser la méthodesizeof.Expressionsizeof (type)produisent la taille de stockage en octets d'objet de stockage ou de type. Voici un exemple pour obtenir tout type de stockage sur la machineintTaille:

namespace DataTypeApplication
{
   Programme de classe
   {
      static void Main (string [] args)
      {
         Console.WriteLine ( "Taille de l'int: {0}", sizeof (int));
         Console.ReadLine ();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Taille de l'int: 4

Type de référence (types de référence)

Type de référence ne contient pas les données réelles sont stockées dans une variable, mais ils contiennent des références à des variables.

En d'autres termes, ils se réfèrent à un emplacement de mémoire. Lors de l'utilisation de plusieurs variables, le type de référence peut pointer vers un emplacement de mémoire. Si l'emplacement de mémoire de données est déterminée par un changement de variable, les autres variables reflètent automatiquement ce changement dans les valeurs.Built-in typesderéférence:objet, dynamique etchaîne.

Objet (Object) Type

Objet (Object) type est unsystème C # type générique (Common Type System - CTS) dans la classe de base ultime pour tous les types de données. Object est un alias pour la classe System.Object. Donc, l'objet (Object) type peut être attribué à un autre type (types de valeurs, les types de référence, les types prédéfinis ou type défini par l'utilisateur) valeurs. Toutefois, avant d'attribuer une valeur, vous devez taper la conversion.

Quand un type de valeur type objet est appelé laboxe, d'autre part, quand un type d'objet à un type de valeur, il est appelé unboxing.

objet obj;
obj = 100; // ceci est la boxe 

Dynamic (Dynamique) Type

Vous pouvez stocker tout type de valeur dans le type de données dynamique de la variable. Ces variables sont la vérification de type se produit lors de l'exécution.

Dynamic déclaration de type syntaxe:

<Nom_variable> = valeur dynamique;

Par exemple:

d dynamique = 20;

type dynamique similaire d'un type d'objet, mais le type d'objet de contrôle variable de type se produit au moment de la compilation, la vérification de type dynamique et le type de la variable se produit lors de l'exécution.

String (String) Type

String (String) de typevous permetd'attribuerune valeur de chaîne à une variable. String (String) type est un alias pour la classe System.String. Il est de l'objet (Object) type dérivé. Valeurs String (String) type peut être distribué sous deux formes: @ citations et des citations.

Par exemple:

String str = "w3cschool.cc";

@ Une chaîne entre guillemets:

@ "W3cschool.cc";

C # string en face de la chaîne peut être ajouté @ (appelé "chaîne verbatim") va échapper à caractère (\) être traités comme des caractères ordinaires, tels que:

string str = @"C:\Windows";

Est équivalent à:

string str = "C:\\Windows";

@ Chaîne peut être utilisé dans une ligne, les sauts de ligne et des espaces d'indentation sont comptés dans la longueur de la chaîne.

string str = @"<script type=""text/javascript"">
    <!--
    -->
    </script>";

types de référence définis par l'utilisateur: classe, interface ou de délégué. Nous allons discuter de ces types dans les chapitres suivants.

type Pointer (types Pointer)

type de pointeur variable pour stocker un autre type d'adresses de mémoire. C # et des pointeurs en C ou C ++ pointeurs ont la même fonctionnalité.

Pointer déclaration de type syntaxe:

tapez * identifiant;

Par exemple:

char * cptr;
int * iptr;

Nous allons discuter du type du pointeur dans la section "Code dangereux".