¡Bienvenido a la Guía de C#!

C# es un lenguaje de programación moderno y orientado a objetos, desarrollado por Microsoft. Es ampliamente utilizado en el desarrollo de aplicaciones de escritorio, aplicaciones web, videojuegos con Unity, y mucho más. 🚀 Con C#, puedes crear aplicaciones robustas y escalables de manera eficiente. 🌟 ¡Es una herramienta esencial para cualquier desarrollador de software! 💻

Introducción a C#

C# es un lenguaje de programación orientado a objetos desarrollado por Microsoft, ampliamente utilizado en el desarrollo de aplicaciones .NET, videojuegos (Unity) y más. Aquí tienes un ejemplo básico:

Ejemplo de C#
using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("¡Hola, Mundo!");
    }
}

Clases y Objetos

En C#, las clases son la base de la programación orientada a objetos. Aquí tienes un ejemplo de cómo definir una clase y crear un objeto:

Ejemplo de Clases y Objetos
using System;

class Persona
{
    public string Nombre;
    public int Edad;

    public void Saludar()
    {
        Console.WriteLine($"Hola, mi nombre es {Nombre} y tengo {Edad} años.");
    }
}

class Program
{
    static void Main()
    {
        Persona persona1 = new Persona();
        persona1.Nombre = "Juan";
        persona1.Edad = 25;
        persona1.Saludar();
    }
}

Herencia en C#

La herencia permite crear nuevas clases a partir de clases existentes. Aquí tienes un ejemplo de herencia:

Ejemplo de Herencia
using System;

class Animal
{
    public void Comer()
    {
        Console.WriteLine("Este animal está comiendo.");
    }
}

class Perro : Animal
{
    public void Ladrar()
    {
        Console.WriteLine("¡Guau guau!");
    }
}

class Program
{
    static void Main()
    {
        Perro miPerro = new Perro();
        miPerro.Comer();
        miPerro.Ladrar();
    }
}

Polimorfismo en C#

El polimorfismo permite que objetos de diferentes clases sean tratados como objetos de una clase base. Aquí tienes un ejemplo usando métodos virtuales y sobreescritos:

Ejemplo de Polimorfismo
using System;

class Animal
{
    public virtual void HacerSonido()
    {
        Console.WriteLine("Este animal hace un sonido.");
    }
}

class Perro : Animal
{
    public override void HacerSonido()
    {
        Console.WriteLine("¡Guau guau!");
    }
}

class Gato : Animal
{
    public override void HacerSonido()
    {
        Console.WriteLine("¡Miau miau!");
    }
}

class Program
{
    static void Main()
    {
        Animal miAnimal1 = new Perro();
        Animal miAnimal2 = new Gato();

        miAnimal1.HacerSonido();
        miAnimal2.HacerSonido();
    }
}

Manejo de Excepciones en C#

En C#, puedes manejar errores usando bloques try-catch. Aquí tienes un ejemplo:

Ejemplo de Manejo de Excepciones
using System;

class Program
{
    static void Main()
    {
        try
        {
            int resultado = 10 / 0;
            Console.WriteLine("El resultado es: " + resultado);
        }
        catch (DivideByZeroException e)
        {
            Console.WriteLine("Error: División por cero.");
        }
    }
}

Colecciones en C#

Las colecciones en C# son estructuras de datos que permiten almacenar y manipular grupos de objetos. Aquí tienes un ejemplo de uso de una List:

Ejemplo de Colecciones
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> nombres = new List<string>();
        nombres.Add("Juan");
        nombres.Add("Ana");
        nombres.Add("Carlos");

        foreach (string nombre in nombres)
        {
            Console.WriteLine(nombre);
        }
    }
}

Ejercicios Prácticos

Aquí tienes algunos ejercicios para practicar tus habilidades en C#:

Ejercicio 1: Clase Cuenta Bancaria

Crea una clase CuentaBancaria con atributos como saldo y métodos como Depositar y Retirar.

Ejercicio 2: Herencia

Crea una clase base Vehiculo y dos clases derivadas Coche y Moto. Implementa métodos específicos para cada tipo de vehículo.

Ejercicio 3: Colecciones

Usa un Dictionary para almacenar nombres de personas y sus edades. Luego, imprime el contenido del diccionario.