robot de la enciclopedia para niños

C Sharp para niños

Enciclopedia para niños
Datos para niños
C#
C Sharp Logo 2023.svg
Af-Helloworld (C Sharp).svg
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.

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 de datos de enteros
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 de datos de coma flotante
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 de datos de caracteres
Tipo Equivalente BCL Tamaño Intervalo Significado
char System.Char 16-bit (2-byte) '\u0000' a '\uFFFF' Carácter unicode
Tipo de datos lógicos
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.

Véase también

Kids robot.svg En inglés: C Sharp (programming language) Facts for Kids

kids search engine
C Sharp para Niños. Enciclopedia Kiddle.