C Sharp para niños
Datos para niños C# |
||
---|---|---|
![]() |
||
![]() |
||
Desarrollador(es) | ||
Microsoft https://docs.microsoft.com/en-us/dotnet/csharp/, https://docs.microsoft.com/de-de/dotnet/csharp/, https://docs.microsoft.com/ja-jp/dotnet/csharp/, https://docs.microsoft.com/fr-fr/dotnet/csharp/ y https://docs.microsoft.com/it-it/dotnet/csharp/ |
||
Información general | ||
Extensiones comunes | .cs .csx .cshtml .razor | |
Paradigma | Multiparadigma: estructurado, imperativo, orientado a objetos, dirigido por eventos, funcional, genérico, reflexivo | |
Apareció en | 2000 | |
Diseñado por | Microsoft | |
Última versión estable | 13.0 (12 de noviembre de 2024 (7 meses y 26 días)) | |
Última versión en pruebas | 14.0 (11 de abril de 2025 (2 meses y 27 días)) | |
Sistema de tipos | Estático, dinámico, fuerte, seguro, nominal | |
Implementaciones | Microsoft .NET, Microsoft .NET Core, Mono y DotGNU | |
Dialectos | Cω, Spec Sharp, Polyphonic C# | |
Influido por | Java, C++, Eiffel, Modula-3, Pascal | |
Ha influido a | D, F#, Java 5, Vala | |
Sistema operativo | Multiplataforma | |
C# (se pronuncia "C sharp") es un lenguaje de programación muy popular. Fue creado por la empresa Microsoft como parte de su plataforma .NET. Este lenguaje es reconocido como un estándar internacional por organizaciones como ECMA e ISO.
C# toma ideas de otros lenguajes como C, C++ y Java. Su nombre, "C#", viene de la música. El símbolo "♯" significa "sostenido", que eleva una nota musical. Es como decir que C# es una versión "mejorada" de C++. Además, el símbolo "♯" parece cuatro signos de "+" juntos, lo que sugiere una evolución de los lenguajes C.
Aunque C# es parte de la plataforma .NET, es un lenguaje independiente. Se usa para crear programas que funcionan en muchos sistemas, como Microsoft Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.
Contenido
- C# (Lenguaje de Programación)
- ¿Qué es C# y para qué sirve?
- Historia de C#
- ¿Cómo funciona C#? Tipos de Datos
- Números Enteros
- Números con Decimales
- Caracteres y Lógicos
- Literales y Variables
- Constantes: Valores Fijos
- Operadores: Las Herramientas de C#
- Instrucciones de Control: Dirigiendo el Programa
- Métodos: Acciones Reutilizables
- Matrices: Listas Organizadas
- Clases y Objetos: Construyendo Programas
- Cadenas de Caracteres: Trabajando con Texto
- LINQ: Buscando Información Fácilmente
- Ejemplos Prácticos de C#
- Herramientas para Programar en C#
- ¿Para qué se diseñó C#?
- Véase también
C# (Lenguaje de Programación)
¿Qué es C# y para qué sirve?
C# es un lenguaje de programación que permite a los desarrolladores crear una gran variedad de aplicaciones. Desde programas para computadoras de escritorio hasta aplicaciones web, juegos y apps para teléfonos móviles. Es un lenguaje muy versátil y moderno.
Historia de C#
C# nació en el año 2000. Durante el desarrollo de la plataforma .NET, Microsoft necesitaba un nuevo lenguaje. Así, Anders Hejlsberg y su equipo crearon C#. Él ya había trabajado en otros lenguajes importantes como Turbo Pascal y Delphi. La idea era tener un lenguaje potente y fácil de usar para construir programas en la nueva plataforma .NET.
¿Cómo funciona C#? Tipos de Datos
En C#, los datos se organizan en "tipos". Imagina que cada tipo es una caja diferente para guardar información. Hay dos grandes grupos: tipos de valor y tipos de referencia. Los tipos de valor guardan la información directamente en la caja.
Números Enteros
Estos tipos sirven para guardar números completos, sin decimales. Pueden ser positivos, negativos o cero.
Tipo | Equivalente BCL | Tamaño | Intervalo | Significado |
---|---|---|---|---|
byte |
System.Byte |
8-bit (1-byte) | 0 a 255 | Entero sin signo |
sbyte |
System.SByte |
8-bit (1-byte) | -128 a 127 | Entero con signo |
short |
System.Int16 |
16-bit (2-byte) | -32.768 a 32.767 | Entero corto con signo |
ushort |
System.UInt16 |
16-bit (2-byte) | 0 a 65.535 | Entero corto sin signo |
int |
System.Int32 |
32-bit (4-byte) | -2.147.483.648 a 2.147.483.647 | Entero medio con signo |
uint |
System.UInt32 |
32-bit (4-byte) | 0 a 4.294.967.295 | Entero medio sin signo |
long |
System.Int64 |
64-bit (8-byte) | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 | Entero largo con signo |
ulong |
System.UInt64 |
64-bit (8-byte) | 0 a 18.446.744.073.709.551.615 | Entero largo sin signo |
nint |
System.IntPtr |
64-bit o 32-bit (4-byte o 8-byte) | Depende de la plataforma en la que se ejecute | Entero nativo con signo |
nuint |
System.UIntPtr |
64-bit o 32-bit (4-byte o 8-byte) | Depende de la plataforma en la que se ejecute | Entero nativo sin signo |
Números con Decimales
Estos tipos guardan números que tienen una parte fraccional, como 3.14 o 0.5. El tipo `decimal` es especial para cálculos muy precisos, como el dinero.
Tipo | Equivalente BCL | Tamaño | Intervalo | Significado |
---|---|---|---|---|
float |
System.Single |
32-bit (4-byte) | ±1.401298E−45 a ±3.402823E+38 | Coma flotante corto |
double |
System.Double |
64-bit (8-byte) | ±4.94065645841246E−324 a ±1.79769313486232E+308 |
Coma flotante largo |
decimal |
System.Decimal |
128-bit (16-byte) | −7.9228162514264337593543950335 a +7.9228162514264337593543950335 |
Coma flotante monetario |
Caracteres y Lógicos
El tipo `char` guarda un solo carácter, como una letra o un número. Usa 16 bits para poder guardar muchos símbolos diferentes (Unicode). El tipo `bool` (booleano) solo puede guardar dos valores: `true` (verdadero) o `false` (falso). Es útil para decisiones en el programa.
Tipo | Equivalente BCL | Tamaño | Intervalo | Significado |
---|---|---|---|---|
char |
System.Char |
16-bit (2-byte) | '\u0000' a '\uFFFF' |
Carácter unicode |
Tipo | Equivalente BCL | Tamaño | Intervalo | Significado |
---|---|---|---|---|
bool |
System.Boolean |
8-bit (1-byte) | true o false |
Verdadero o falso |
Literales y Variables
Los literales son valores fijos que escribimos directamente en el código, como el número `255` o el texto `"Hola"`. C# permite escribir números en diferentes formatos, como hexadecimal (base 16) o binario (base 2).
Las variables son como contenedores con un nombre que guardan información. Puedes cambiar el valor que tienen. Para usar una variable, primero le dices qué tipo de dato va a guardar y cómo se va a llamar.
int miNumero; // Declaramos la variable, pero no la inicializamos con ningún valor.
Puedes darle un valor después:
miNumero = 5; // Asignamos el valor '5' a la variable creada.
O declararla y darle un valor al mismo tiempo:
int miNumero = 5; // Declaramos la variable, y asignamos el valor '5'.
También puedes usar `var` para que C# adivine el tipo de dato por ti:
var cadena = "Esto es un string"; // C# sabe que es texto
var numero1 = 5; // C# sabe que es un número entero
A veces, un programa necesita cambiar un tipo de dato a otro. Esto se llama "conversión de tipo". Algunas conversiones son automáticas (implícitas) porque no hay riesgo de perder información. Otras necesitan que le digas a C# que las haga (explícitas) porque podría haber cambios en el valor.
Constantes: Valores Fijos
Las constantes son como variables, pero su valor no puede cambiar una vez que se les asigna. Son útiles para valores que siempre serán los mismos, como el número Pi.
- `const`: Se le da el valor al momento de declararla y no se puede cambiar.
const double PI = 3.1415;
- `readonly`: Se le puede dar el valor más tarde, pero solo una vez.
readonly double E;
E = 2.71828;
Operadores: Las Herramientas de C#
Los operadores son símbolos que nos permiten hacer operaciones con los datos. Por ejemplo, sumar, restar, comparar o decidir si algo es verdadero o falso.
Categoría | Operadores |
---|---|
Aritméticos | + - * / % (suma, resta, multiplica, divide, resto) |
Lógicos | ! && || (no, y, o) |
Relacional | == != < > <= >= (igual, diferente, menor, mayor, menor o igual, mayor o igual) |
Asignación | = += -= (asigna, suma y asigna, resta y asigna, etc.) |
Instrucciones de Control: Dirigiendo el Programa
Las instrucciones de control le dicen al programa qué camino seguir. Permiten que el código tome decisiones o repita acciones.
- `if-else`: Para tomar decisiones. Si una condición es verdadera, hace algo; si no, hace otra cosa.
if (i == 2)
{
// Si 'i' es 2, haz esto
}
else if (i == 3)
{
// Si 'i' es 3, haz esto otro
}
else
{
// Si no es 2 ni 3, haz esto
}
- `switch`: Para elegir entre varias opciones basadas en un valor.
switch (i)
{
case 1:
// Si 'i' es 1
break;
case 2:
case 3:
// Si 'i' es 2 o 3
break;
default:
// Si no es ninguno de los anteriores
break;
}
- `for`, `while`, `do-while`, `foreach`: Para repetir acciones (bucles).
* `for`: Repite un número específico de veces. * `while`: Repite mientras una condición sea verdadera. * `do-while`: Repite al menos una vez y luego mientras la condición sea verdadera. * `foreach`: Recorre todos los elementos de una lista o colección.
Métodos: Acciones Reutilizables
Los métodos son bloques de código que realizan una tarea específica. Son como "funciones" que puedes llamar varias veces en tu programa para no repetir código.
- Todos los métodos en C# deben estar dentro de una "clase" (ver más adelante).
- Puedes tener varios métodos con el mismo nombre si tienen diferentes "parámetros" (la información que les pasas). Esto se llama "sobrecarga de métodos".
- El método `Main` es especial: es el punto de inicio de cualquier programa en C#.
int Suma(int x, int y)
{
return x + y; // Suma dos números
}
int Suma(int x, int y, int z)
{
return x + y + z; // Suma tres números (ejemplo de sobrecarga)
}
Matrices: Listas Organizadas
Las matrices son colecciones de elementos del mismo tipo, organizados en una lista. Imagina una fila de casilleros, donde cada casillero guarda un dato.
- Los elementos de una matriz se numeran empezando desde 0.
- Puedes saber cuántos elementos tiene una matriz usando su propiedad `Length`.
Declarar una matriz:
int[] intArray = new int[5]; // Una matriz para 5 números enteros
Acceder a un elemento:
intArray[2]; // Esto te dará el tercer elemento de la matriz
También hay matrices multidimensionales, como una tabla con filas y columnas.
Clases y Objetos: Construyendo Programas
En C#, los programas se construyen usando "clases" y "objetos".
- Una clase es como un plano o molde para crear cosas. Define las características (variables) y las acciones (métodos) que tendrán los objetos.
- Un objeto es una "instancia" de una clase, es decir, algo creado a partir de ese plano.
Por ejemplo, si tienes una clase `Coche`, puedes crear muchos objetos `coche` diferentes (un coche rojo, un coche azul, etc.), todos siguiendo el mismo plano.
- `new`: Se usa para crear un nuevo objeto a partir de una clase.
- `this`: Se refiere al objeto actual en el que estás trabajando.
- `static`: Indica que un miembro (variable o método) pertenece a la clase en sí, no a un objeto específico. Puedes usarlo sin crear un objeto.
class Clase
{
}
Clase c = new Clase(); // Creamos un objeto 'c' de la clase 'Clase'
Cadenas de Caracteres: Trabajando con Texto
Las cadenas de caracteres (`string`) son secuencias de texto, como "Hola mundo". En C#, las cadenas son objetos especiales.
- Son "inmutables": una vez que creas una cadena, no puedes cambiarla directamente. Si quieres modificarla, C# crea una nueva cadena con los cambios.
- Puedes unir cadenas usando el operador `+`.
- La propiedad `Length` te dice cuántos caracteres tiene una cadena.
string texto = "Cadena de caracteres";
int i = texto.Length; // 'i' será 20
Puedes comparar cadenas para ver si son iguales:
bool b = "texto" == "texto"; // 'b' será 'true'
La clase `System.String` tiene muchos métodos útiles para trabajar con texto, como:
- `Copy(string str)`: Hace una copia de una cadena.
- `CompareTo(string str)`: Compara dos cadenas.
- `IndexOf(string str)`: Busca dónde aparece por primera vez un texto dentro de otro.
- `ToUpper()` / `ToLower()`: Convierte el texto a mayúsculas o minúsculas.
- `Substring(inicio, longitud)`: Extrae una parte de la cadena.
LINQ: Buscando Información Fácilmente
LINQ (Language-Integrated Query) es una característica de C# que te permite buscar y organizar datos de una manera muy sencilla. Es como si pudieras hacer preguntas directamente a tus datos, sin importar si están en una lista, una base de datos o un archivo XML.
Con LINQ, puedes filtrar, ordenar y agrupar información con muy poco código. Esto hace que sea más fácil trabajar con grandes cantidades de datos.
class LINQQueryExpressions
{
static void Main()
{
// Lista de puntuaciones
int[] scores = new int[] { 97, 92, 81, 60 };
// Busca las puntuaciones mayores de 80
IEnumerable<int> scoreQuery =
from score in scores
where score > 80
select score;
// Muestra los resultados
foreach (int i in scoreQuery)
{
Console.Write(i + " ");
}
}
}
// Salida: 97 92 81
Ejemplos Prácticos de C#
Aquí tienes algunos ejemplos sencillos de cómo se ve el código en C#:
- Programa "Hola mundo": El programa más básico, que solo muestra un mensaje.
using System;
public class Ejemplo
{
public static void Main(string[] args)
{
Console.WriteLine("Hola mundo"); // Muestra "Hola mundo" en la pantalla
}
}
- Suma y concatenación: Cómo sumar números y unir textos.
using System;
public class Ejemplo
{
public static void Main(string[] args)
{
int x = 10;
int y = 20;
Console.WriteLine("El resultado es: " + (x + y)); // Imprimirá: "El resultado es: 30"
}
}
- Uso de clases y objetos (ejemplo de un coche):
using System;
public class Coche
{
private int numPuertas; // Una característica del coche: número de puertas
public int NumPuertas // Cómo acceder y cambiar el número de puertas
{
get
{
return this.numPuertas;
}
set
{
this.numPuertas = value;
}
}
public Coche(int numPuertas) // Constructor: para crear un coche con un número de puertas
{
this.NumPuertas = numPuertas;
}
public Coche() : this(2) // Otro constructor: si no dices nada, el coche tendrá 2 puertas
{
}
}
public class Ejemplo
{
public static void Main(string[] args)
{
Coche coche = new Coche(); // Creamos un coche (tendrá 2 puertas por defecto)
coche.NumPuertas = 4; // Cambiamos el número de puertas a 4
Console.WriteLine("El número de puertas es: " + coche.NumPuertas);// Imprimirá: "El número de puertas es: 4"
}
}
- Ejemplo de listas paralelas (nombres y edades):
using System;
namespace PruebaVector10
{
class PruebaVector10
{
private string[] nombres; // Lista para guardar nombres
private int[] edades; // Lista para guardar edades
public void Cargar()
{
nombres=new string[5]; // Creamos espacio para 5 nombres
edades=new int[5]; // Creamos espacio para 5 edades
for(int f=0;f < nombres.Length;f++)
{
Console.Write("Ingrese nombre:");
nombres[f]=Console.ReadLine(); // Pide un nombre
Console.Write("Ingrese edad:");
string linea;
linea = Console.ReadLine();
edades[f]=int.Parse(linea); // Pide una edad
}
}
public void MayoresEdad()
{
Console.WriteLine("Personas mayores de edad.");
for(int f=0;f < nombres.Length;f++)
{
if (edades[f] >= 18) // Si la edad es 18 o más
{
Console.WriteLine(nombres[f]); // Muestra el nombre
}
}
Console.ReadKey();
}
static void Main(string[] args)
{
PruebaVector10 pv = new PruebaVector10();
pv.Cargar(); // Llama a la función para cargar datos
pv.MayoresEdad(); // Llama a la función para mostrar mayores de edad
}
}
}
Herramientas para Programar en C#
Para escribir y probar programas en C#, los desarrolladores usan herramientas especiales llamadas IDEs y compiladores.
- Microsoft Visual Studio: Es el IDE más usado para C#.
- SharpDevelop: Una opción gratuita y de código abierto, similar a Visual Studio.
- Mono: Permite que los programas de C# funcionen en diferentes sistemas operativos como Linux o macOS.
- DotGNU: Otra herramienta de código abierto para C#.
¿Para qué se diseñó C#?
Los creadores de C# tenían varias metas importantes en mente:
- Que fuera un lenguaje moderno, sencillo y útil para muchos tipos de programas.
- Que ayudara a los programadores a evitar errores comunes, como usar variables sin valor o salirse de los límites de una lista.
- Que permitiera crear partes de programas que se pudieran usar en diferentes sistemas.
- Que fuera fácil para programadores que ya conocían otros lenguajes como C++ o Java.
- Que sirviera para crear programas de cualquier tamaño, desde los más pequeños hasta los más grandes y complejos.
- Que los programas hechos con C# fueran eficientes, usando bien la memoria y el procesador.