Latest web development tutorials

C # tipi di dati

In C #, le variabili sono suddivise nelle seguenti tipologie:

  • Valore Tipo (tipi di valore)
  • Tipo di riferimento (I tipi di riferimento)
  • tipo di puntatore (tipi di puntatore)

Valore Tipo (tipi di valore)

variabili di tipo valore può essere assegnato un valore. Essi derivano dallaSystem.ValueType di classe.

I tipi di valore contengono direttamente i dati. Comeint, char, float, sono memorizzati i numeri, lettere, numero a virgola mobile.Quando si dichiara un tipoint, il sistema alloca la memoria per memorizzare il valore.

La seguente tabella elenca i valori disponibili Tipo 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

Per ottenere un tipo esatto o una dimensione variabile su una particolare piattaforma, è possibile utilizzare il metodosizeof.Espressionesizeof (tipo)producono dimensione della memoria in byte di oggetto di archiviazione o tipo. Ecco un esempio di ottenere qualsiasi tipo di storage sulla macchinaintDimensione:

namespace DataTypeApplication
{
   Programma di classe
   {
      static void Main (string [] args)
      {
         Console.WriteLine ( "Formato di int: {0}", sizeof (int));
         Console.ReadLine ();
      }
   }
}

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

Dimensioni di int: 4

Tipo di riferimento (I tipi di riferimento)

Tipo di riferimento non contiene i dati reali sono memorizzati in una variabile, ma contengono riferimenti a variabili.

In altre parole, si riferiscono ad una locazione di memoria. Quando si utilizzano più variabili, tipo di riferimento può puntare a una posizione di memoria. Se la locazione di memoria di dati è determinato da un cambio di variabile, altre variabili rifletteranno automaticamente questa modifica valori.Built-in tipi di riferimento:oggetto, dinamica earchi.

Object (oggetto) Tipo

Oggetto (Object) tipo è ungenerico sistema di C # tipo (Common Type System - CTS) nella classe base definitiva per tutti i tipi di dati. L'oggetto è un alias per la classe System.Object. Così il (Object) Tipo di oggetto può essere assegnato a qualsiasi altro tipo (i tipi di valore, tipi di riferimento, i tipi predefiniti o definiti dall'utente tipo) valori. Tuttavia, prima di assegnare un valore, è necessario digitare la conversione.

Quando un tipo di valore di opporsi tipo è chiamatoboxe, d'altra parte, quando un tipo di oggetto ad un tipo di valore, si chiama unboxing.

object obj;
obj = 100; // questo è il pugilato 

Dinamico (Dynamic) Tipo

È possibile memorizzare qualsiasi tipo di valore nel tipo di dati dinamico della variabile. Queste variabili sono la verifica del tipo avviene in fase di esecuzione.

sintassi di dichiarazione di tipo dinamico:

dinamica <nome_variabile> = valore;

Ad esempio:

d dinamica = 20;

Simile tipo dinamico di un tipo di oggetto, ma il tipo di variabile di tipo oggetto di ispezione si verifica al momento della compilazione, controllo di tipo dinamico e tipo di variabile si verifica in fase di esecuzione.

String (String) Tipo

String (String) tipo consente diassegnare qualsiasi valore stringa a una variabile. String (String) tipo è un alias per la classe System.String. E 'dall'oggetto (Object) tipo derivato. Valori di stringa (String) tipo può essere distribuito in due forme: @ citazioni e le citazioni.

Ad esempio:

String str = "w3cschool.cc";

@ Una stringa tra virgolette:

@ "W3cschool.cc";

C # stringa di fronte alla stringa può essere aggiunto @ (denominato "stringa verbatim") sfuggirà carattere (\) essere trattati come caratteri normali, quali:

string str = @"C:\Windows";

È equivalente a:

string str = "C:\\Windows";

@ String può essere utilizzato in qualsiasi riga, interruzioni di riga e gli spazi di rientro vengono conteggiati nella lunghezza della stringa.

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

tipi di riferimento definiti dall'utente: classe, interfaccia o delegare. Discuteremo questi tipi nei capitoli successivi.

tipo di puntatore (tipi di puntatore)

tipo di puntatore variabile per memorizzare un altro tipo di indirizzi di memoria. C # e puntatori a puntatori C o C ++ hanno la stessa funzionalità.

Pointer dichiarazione del tipo di sintassi:

digitare * identificativo;

Ad esempio:

char * CPTR;
int * IPTR;

Discuteremo il tipo del puntatore nella sezione "codice unsafe".