Introduzione ai tipi di dati C #
Come suggerisce il nome, il tipo di dati è il tipo di dati che memorizzerai nella tua variabile. Il tipo di dati viene utilizzato per suggerire al compilatore o all'interprete quale tipo di dati elaborerà e quanta memoria sarà richiesta per tali dati.
Ad esempio: int è un tipo di dati che memorizza un valore numerico e richiede quattro byte.
Poiché C # è un linguaggio fortemente tipizzato, è necessario dichiarare il tipo di variabile o costante prima di usarlo. L'uso appropriato dei tipi di dati consente di risparmiare memoria e migliorare le prestazioni dell'applicazione.
Sintassi:
datatype = value;
Esempi di tipi di dati C #:
1. int intVal = 55; In questo esempio: int è un tipo di dati, intVal è una variabile_name, 55 è un valore.
2. char charVal = 'A';
3. string strVal = “Hello World!”;
4. float floatVal = 15.5f;
5. bool boolVal = true;
Primi 3 tipi di dati C #
I tipi di dati C # sono divisi in tre categorie:
1. Tipi di valore
- Memorizza direttamente il valore di una variabile in memoria.
- Accetta sia letterali firmati che non firmati.
- Esistono due tipi di tipi di dati valore in C #:
- Tipi di dati predefiniti come int, char, bool, ecc.
- Tipi di dati definiti dall'utente come enum, struct, ecc.
2. Tipi di riferimento
- Memorizzano l'indirizzo della variabile, ovvero contengono il riferimento a una variabile.
- Se i dati vengono modificati da una variabile, l'altra variabile otterrà automaticamente il valore aggiornato.
- Esistono due tipi di tipi di dati di riferimento in C #:
- Tipi predefiniti come Object, String
- Tipi definiti dall'utente come Classe, Interfaccia
3. Tipi di puntatore
- Contengono l'indirizzo di memoria della variabile.
- Simboli utilizzati nel puntatore:
- & (e commerciale) - Operatore indirizzo, determina l'indirizzo di una variabile
- * (asterisco) - Operatore indiretto, accedi al valore di un indirizzo
Esempi di diversi tipi di dati
Di seguito sono riportati alcuni esempi di diversi tipi di dati in C #,
Esempio n. 1: alcuni tipi di valore
using System;
public class ValueDataTypes
(
public static void Main()
(
//int - 32-bit signed integer type
int i = 55;
//char - 16-bit Unicode character
char ch = 'A';
//short - 16-bit signed integer type
short s = 56;
//long - 64-bit signed integer type
long l = 5564;
//uint - 32-bit unsigned integer type
uint ui = 100;
//ushort - 16-bit unsigned integer type
ushort us = 80;
//ulong - 64-bit unsigned integer type
ulong ul = 3625573;
//double - 64-bit double precision floating point type
double d = 6.358674532;
//float - 32-bit single-precision floating point type
//float needs 'f' or 'F' as suffix
float f = 2.7330645f;
//decimal - 128-bit precise decimal values with 28-29 significant digits
//decimal needs 'm' or 'M' as suffix
decimal dec = 339.5m;
Console.WriteLine("Integer: " + i);
Console.WriteLine("Char: " + ch);
Console.WriteLine("Short: " + s);
Console.WriteLine("Long: " + l);
Console.WriteLine("Unsinged integer: " + ui);
Console.WriteLine("Unsinged short: " + us);
Console.WriteLine("Unsinged long: " + ul);
Console.WriteLine("Double: " + d);
Console.WriteLine("Float: " + f);
Console.WriteLine("Decimal: " + dec);
)
)
Produzione:
Esempio n. 2: Bool, Enum e Struct Data Type
La struttura è un tipo composito utilizzato per archiviare dati correlati con tipi di dati diversi. Enum viene utilizzato per assegnare nomi alle costanti integrali.
using System;
public class BoolEnumStruct
(
//declaring enum
enum Days ( Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday );
//declaring structure
struct Student
(
public int Id;
public string FirstName;
public string LastName;
public Student(int id, string fname, string lname)
(
Id = id;
FirstName = fname;
LastName = lname;
)
)
public static void Main()
(
//boolean data type
bool flag = true;
if(flag)
(
Console.WriteLine("Bool value: "+flag);
Console.WriteLine();
)
//Accessing enum value for Friday
Console.WriteLine("Enumeration:");
Console.WriteLine(Days.Friday);
Console.WriteLine((int)Days.Friday);
Console.WriteLine();
//passing values to structure members using constructor
Student student = new Student(1, "Riya", "Sen");
Console.WriteLine("Structure Members:");
Console.WriteLine(student.Id);
Console.WriteLine(student.FirstName);
Console.WriteLine(student.LastName);
)
)
Produzione:
Esempio n. 3: tipi di dati di riferimento
using System;
public class StrObjDynamic
(
public static void Main()
(
string str = "C# ";
str += "Data Types";
Console.WriteLine("String: "+str);
Console.WriteLine();
//declaring object
object obj;
obj = 100;
Console.WriteLine("Object: "+obj);
//displaying type of object using GetType()
Console.WriteLine(obj.GetType());
Console.WriteLine();
//declaring dynamic variables
dynamic value1 = "Hello World!";
dynamic value2 = 5296;
dynamic value3 = 6.5;
//displaying actual type of dynamic variables using GetType()
Console.WriteLine("Dynamic:");
Console.WriteLine("Type of value1: (0)", value1.GetType().ToString());
Console.WriteLine("Type of value2: (0)", value2.GetType().ToString());
Console.WriteLine("Type of value3: (0)", value3.GetType().ToString());
)
)
Produzione:
Esempio n. 4: interfaccia
Un'interfaccia può avere proprietà, metodi, eventi e indicizzatori come suoi membri. Contiene solo la dichiarazione dei suoi membri. L'implementazione dei suoi membri è fornita dalla classe che la implementa implicitamente o esplicitamente.
using System;
interface Shape
(
void rectangle();
)
public class Area : Shape
(
//implementing interface method
public void rectangle()
(
Console.WriteLine("Area of rectangle is Length * Breadth");
)
public static void Main(String() args)
(
Area area = new Area();
area.rectangle();
)
)
Produzione:
Esempio n. 5: delegato
Un delegato è un oggetto che contiene il riferimento al metodo.
using System;
public class DelegateDemo
(
// Declaring delegate
public delegate void Sum(int a, int b);
public void SumVal(int a, int b)
(
Console.WriteLine(a +"+"+ b+ " = (0)", a + b);
)
public static void Main(String() args)
(
DelegateDemo delegateDemo = new DelegateDemo();
// Creating object of delegate
Sum sum = new Sum(delegateDemo.SumVal);
//Passing values to the method using delegate object
sum(100, 100);
)
)
Produzione:
Conclusione
- Il tipo di valore è memorizzato nello stack.
- Un tipo di riferimento è memorizzato nell'heap.
- Quando un tipo di valore viene convertito in un tipo di riferimento, viene chiamato boxing (processo di conversione implicita) .
- Quando un tipo di riferimento viene convertito in un tipo di valore, viene chiamato unboxing (processo di conversione esplicita) .
Articoli consigliati
Questa è una guida ai tipi di dati C #. Qui discutiamo i tipi di C # insieme a diversi esempi di tipi di dati. Puoi anche consultare i seguenti articoli per saperne di più-
- Come accedere agli spazi dei nomi in C #?
- Matrici 2D in C #
- Scambiare in C #
- Oggetti in C #
- Scambiare in PHP
- 3 diversi tipi di array in PHP (esempi)
- Tipi di dati di PHP con esempi