Instructivo de C# para Principiantes

Lic. Facundo Nicolás Suárez — Fundamentos de la Programación I — UNPAZ
Resumen introductorio / guía práctica
Versión para web — Fecha: Octubre 2025

Introducción a C#

Este instructivo ofrece una guía básica y práctica para iniciar el aprendizaje de C#. Está pensado como un resumen condensado de conceptos esenciales para trabajar en consola, y sirve como apoyo a un texto más amplio —Fundamentos de la Programación de Videojuegos— donde se abordan las temáticas en mayor profundidad y con ejemplos orientados a producción de videojuegos.

Estructura mínima de un programa en C#

En C# la ejecución comienza en el método Main. A continuación se muestra el esqueleto básico de un programa de consola y una breve explicación de sus partes.

using System; // Permite usar tipos básicos del framework

class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine("Hola, mundo");
  }
}

Explicación: using System; importa utilidades del framework; class Program define la clase contenedora; Main es el punto de entrada; Console.WriteLine escribe en la consola.

Variables y tipos de datos

Las variables almacenan valores en memoria. En C# cada variable tiene un tipo estático que determina qué datos puede contener y qué operaciones se le pueden aplicar.

int edad = 20;
float altura = 1.75f;
double peso = 70.5;
string nombre = "Ana";
bool esEstudiante = true;
const int MAX_VIDA = 10;

Consejos: usa nombres descriptivos, inicializa variables y emplea constantes cuando el valor no deba cambiar.

Entrada y salida de datos

La interacción básica con el usuario en programas de consola se realiza mediante Console.WriteLine() y Console.ReadLine(). Lea siempre como texto y convierta cuando necesite números.

Console.WriteLine("Ingresa tu nombre:");
string nombre = Console.ReadLine();
Console.WriteLine("Hola, " + nombre + "!");

Console.WriteLine("Ingresa tu edad:");
int edad = int.Parse(Console.ReadLine());

Nota: int.Parse() lanza una excepción si la cadena no es numérica; para manejo seguro utilice int.TryParse().

Condicionales

Las estructuras condicionales permiten ejecutar distintos bloques de código según una condición. Se usan if / else para decisiones binarias o jerárquicas y switch / case cuando hay múltiples opciones discretas.

if / else

int edad = 18;
if (edad >= 18)
{
  Console.WriteLine("Eres mayor de edad");
}
else
{
  Console.WriteLine("Eres menor de edad");
}

switch / case

int opcion = 2;
switch (opcion)
{
  case 1:
    Console.WriteLine("Opción 1 seleccionada");
    break;
  case 2:
    Console.WriteLine("Opción 2 seleccionada");
    break;
  default:
    Console.WriteLine("Opción inválida");
    break;
}

Bucles

Los bucles permiten repetir instrucciones varias veces. Use for cuando conoce la cantidad de repeticiones y while cuando la repetición depende de una condición dinámica.

for

for (int i = 1; i <= 5; i++)
{
  Console.WriteLine("Número: " + i);
}

while

int i = 1;
while (i <= 5)
{
  Console.WriteLine("Número: " + i);
  i++;
}

Funciones y rutinas

Las funciones permiten organizar la lógica en piezas reutilizables. Pueden devolver un valor (int, bool, etc.) o no devolver nada (void). El paso por referencia (ref) posibilita que una rutina modifique la variable original.

Rutina void

void Saludar(string nombre)
{
  Console.WriteLine("Hola, " + nombre + "!");
}

// Uso
Saludar("Ana");

Paso por referencia (ref)

void Aumentar(ref int valor, int cantidad)
{
  valor += cantidad;
}

int energia = 5;
Aumentar(ref energia, 3); // energia ahora es 8

Función con retorno

int Sumar(int a, int b)
{
  return a + b;
}

int resultado = Sumar(3, 4); // 7

Limitar valores: Math.Clamp

Para mantener una variable dentro de un rango (por ejemplo 0–10) use Math.Clamp, que garantiza que el valor no sea menor ni mayor que los límites especificados.

int vida = 12;
vida = Math.Clamp(vida, 0, 10); // vida será 10

Aleatoriedad

La clase Random permite generar números aleatorios para eventos o comportamientos no deterministas. Cree una instancia y use Next() indicando el rango deseado.

Random rnd = new Random();
int numero = rnd.Next(1, 4); // genera 1, 2 o 3

Ejercicio propuesto: "Siete días en el Wallmapu" (resumen)

Desarrollar un videojuego textual en C# usando la consola. El jugador administra tres energías (fuerza, espíritu, equilibrio) durante siete días. Cada acción diaria modifica las energías y puede generar eventos aleatorios. El objetivo es mantener las energías por encima de cero hasta completar los siete días.

Requisitos técnicos: uso de condicionales, bucles, switch, rutinas (void y return), paso por referencia (ref), Console.WriteLine/ReadLine y Math.Clamp.

Rutinas sugeridas

void RecolectarAlimentos(ref int fuerza, ref int espiritu, ref int equilibrio)
void CompartirComunidad(ref int fuerza, ref int espiritu, ref int equilibrio)
void CaminarBosque(ref int fuerza, ref int espiritu, ref int equilibrio)
void DescansarFogon(ref int fuerza, ref int espiritu, ref int equilibrio)
bool JuegoContinua(int fuerza, int espiritu, int equilibrio, int dia)

Ir al tutorial interactivo "Siete días en el Wallmapu"

Buenas prácticas