Introducción a C\#
## Objetivos de Aprendizaje
- Comprender la historia de C# y el framework .NET
- Configurar el entorno de desarrollo de Visual Studio
- Escribir y ejecutar tu primer programa en C#
- Comprender los fundamentos de la sintaxis de C#
## ¿Qué es C#?
C# (pronunciado "C sharp") es un lenguaje de programación moderno, orientado a objetos desarrollado por Microsoft como parte de su iniciativa .NET.
```csharp
using System;
class HelloWorld
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
```
## El Framework .NET
### Componentes Clave
| Componente | Descripción |
|------------|-------------|
| CLR | Common Language Runtime - ejecuta código C# |
| FCL | Framework Class Library - clases preconstruidas |
| JIT | Compilador Just-In-Time - compila IL a código nativo |
### Cómo Funciona .NET
```text
Código Fuente C#
↓
Compilador
↓
IL (Intermediate Language) / MSIL
↓
Compilador JIT
↓
Código Nativo de Máquina
```
### Características Clave
- **Seguridad de Tipos** - Sistema de tipado fuerte
- **Orientado a Objetos** - Todo excepto los primitivos es un objeto
- **Gestión Automática de Memoria** - Recolección de basura
- **Orientado a Componentes** - Construido para software reutilizable
- **Sintaxis Moderna** - Código limpio y legible
## Instalando Visual Studio
### Descarga
Obtén Visual Studio de
### Ediciones
- **Community** - Gratis para desarrolladores individuales
- **Professional** - Para desarrolladores profesionales
- **Enterprise** - Para equipos grandes
### Cargas de Trabajo
Al instalar, selecciona:
- **Desarrollo de escritorio .NET**
- **Desarrollo web ASP.NET**
## Tu Primer Programa
### Archivo: HelloWorld.cs
```csharp
using System;
class HelloWorld
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
```
### Compilar y Ejecutar
```bash
dotnet new console -o HelloWorld
cd HelloWorld
dotnet run
```
## Estructura de un Programa en C\#
```csharp
using System; // Directivas using
namespace MyApp // Namespace (opcional)
{
class Program // Declaración de clase
{
static void Main() // Método Main - punto de entrada
{
// Las sentencias van aquí
}
}
}
```
### Componentes
1. **Directivas using** - Importan namespaces
2. **Namespace** - Organiza el código lógicamente
3. **Clase** - Plantilla para crear objetos
4. **Método Main** - Punto de entrada del programa
## Declaraciones de Nivel Superior (C# 9+)
C# moderno permite una estructura de programa simplificada:
```csharp
// Program.cs
Console.WriteLine("Hello, World!");
```
El compilador genera la clase y el método Main automáticamente.
## Comentarios
```csharp
// Comentario de una línea
/*
* Comentario de múltiples líneas
*/
///
/// Comentario de documentación XML
///
```
## El Método Main
### Sintaxis Tradicional
```csharp
static void Main()
{
// Código aquí
}
static void Main(string[] args)
{
foreach (string arg in args)
{
Console.WriteLine(arg);
}
}
```
## Salida por Consola
```csharp
// Imprimir con nueva línea
Console.WriteLine("Hello");
// Imprimir sin nueva línea
Console.Write("Hello ");
Console.Write("World");
// Interpolación de cadenas (C# 6+)
string name = "Alice";
int age = 30;
Console.WriteLine($"Name: {name}, Age: {age}");
// Salida formateada
Console.WriteLine("Name: {0}, Age: {1}", name, age);
```
## Argumentos de Línea de Comandos
### Hello.cs
```csharp
using System;
class Hello
{
static void Main(string[] args)
{
if (args.Length > 0)
{
Console.WriteLine("Hello, " + args[0]);
}
else
{
Console.WriteLine("Hello, World!");
}
}
}
```
```bash
dotnet run -- Alice
# Salida: Hello, Alice
```
## IDEs
### IDEs Populares
- **Visual Studio** (recomendado para Windows)
- **Visual Studio Code** (multiplataforma)
- **JetBrains Rider** (multiplataforma)
- **Editores en Línea** (para pruebas rápidas)
### Extensiones de VS Code
- C# para Visual Studio Code
- Herramienta de Instalación de .NET
## Versiones de C\#
| Versión | Año | Características Clave |
|---------|-----|----------------------|
| C# 1.0 | 2002 | Primera versión |
| C# 2.0 | 2005 | Genéricos, tipos anulables |
| C# 3.0 | 2007 | LINQ, expresiones lambda |
| C# 4.0 | 2010 | Enlace dinámico |
| C# 5.0 | 2012 | async/await |
| C# 6.0 | 2015 | Interpolación de cadenas, operador condicional nulo |
| C# 9.0 | 2020 | Records, mejoras en pattern matching |
| C# 10 | 2021 | Record structs, using global |
| C# 11 | 2022 | Mejoras en pattern matching |
| C# 12 | 2023 | Constructores primarios, alias |
## Verificar Tu Versión
```bash
dotnet --version
```
## Resumen
- C# es un lenguaje OOP moderno de Microsoft
- .NET proporciona CLR y FCL
- El código se compila a IL, luego JIT compila a nativo
- El punto de entrada es el método Main
- Usa `dotnet new console` para crear un proyecto
- `dotnet run` compila y ejecuta
- Comentarios: `//`, `/* */`, `///`
Comments
Comments powered by Giscus
To enable comments, add your Giscus embed code here.
Learn more about Giscus →