Introducción a los tipos de datos de C #
Como su nombre indica, el tipo de datos es el tipo de datos que va a almacenar en su variable. El tipo de datos se usa para sugerirle al compilador o al intérprete qué tipo de datos va a procesar y cuánta memoria se necesitará para esos datos.
Por ejemplo: int es un tipo de datos que almacena valores numéricos y requiere cuatro bytes.
Como C # es un lenguaje fuertemente tipado, es necesario declarar el tipo de variable o constante antes de usarlo. El uso apropiado de los tipos de datos ahorra memoria y mejora el rendimiento de la aplicación.
Sintaxis:
datatype = value;
Ejemplos de tipos de datos de C #:
1. int intVal = 55; En este ejemplo: int es un tipo de datos, intVal es un nombre_variable, 55 es un valor.
2. char charVal = 'A';
3. string strVal = "¡Hola, mundo!";
4. float floatVal = 15.5f;
5. bool boolVal = verdadero;
Los 3 principales tipos de datos de C #
Los tipos de datos de C # se dividen en tres categorías:
1. Tipos de valor
- Almacena directamente el valor de una variable en la memoria.
- Acepta literales con y sin signo.
- Hay dos tipos de tipos de datos de valor en C #:
- Tipos de datos predefinidos como int, char, bool, etc.
- Tipos de datos definidos por el usuario como enum, struct, etc.
2. Tipos de referencia
- Almacenan la dirección de la variable, es decir, contienen la referencia a una variable.
- Si una variable modifica los datos, la otra variable obtendrá automáticamente el valor actualizado.
- Hay dos tipos de tipos de datos de referencia en C #:
- Tipos predefinidos como Objeto, Cadena
- Tipos definidos por el usuario como clase, interfaz
3. Tipos de puntero
- Contienen la dirección de memoria de la variable.
- Símbolos utilizados en puntero:
- & (ampersand): operador de dirección, determina la dirección de una variable
- * (asterisco): operador indirecto, accede al valor de una dirección
Ejemplos de diferentes tipos de datos
Los siguientes son algunos ejemplos de diferentes tipos de datos en C #,
Ejemplo # 1: algunos tipos de valor
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);
)
)
Salida:
Ejemplo # 2: Tipo de datos Bool, Enum y Struct
La estructura es un tipo compuesto utilizado para almacenar datos relacionados con diferentes tipos de datos. Enum se usa para asignar nombres a constantes integrales.
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);
)
)
Salida:
Ejemplo # 3: Tipos de datos de referencia
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());
)
)
Salida:
Ejemplo 4: interfaz
Una interfaz puede tener propiedades, métodos, eventos e indexadores como sus miembros. Solo contiene la declaración de sus miembros. La implementación de sus miembros es proporcionada por la clase que la implementa implícita o explícitamente.
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();
)
)
Salida:
Ejemplo # 5: Delegado
Un delegado es un objeto que contiene la referencia al método.
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);
)
)
Salida:
Conclusión
- El tipo de valor se almacena en la pila.
- Un tipo de referencia se almacena en el montón.
- Cuando un tipo de valor se convierte en un tipo de referencia, se denomina boxeo (proceso de conversión implícito) .
- Cuando un tipo de referencia se convierte en un tipo de valor, se denomina unboxing (proceso de conversión explícito) .
Artículos recomendados
Esta es una guía para los tipos de datos de C #. Aquí discutimos los tipos de C # junto con diferentes ejemplos de tipos de datos. También puede consultar los siguientes artículos para obtener más información.
- ¿Cómo acceder a los espacios de nombres en C #?
- Matrices 2D en C #
- Intercambio en C #
- Objetos en C #
- Intercambio en PHP
- 3 diferentes tipos de matrices en PHP (ejemplos)
- Tipos de datos de PHP con ejemplos