65 - Parámetros opcionales


Para definir un parámetro opcional debemos asignarle un dato en la declaración del método:

    public void Imprimir(string mensaje,int col=1,int fil=1)

Como vemos debemos asignarle un valor en la declaración del método, luego cuando llamamos a este método podemos hacerlo pasando 1,2 o 3 parámetros:

    ob1.Imprimir("Hola");
    ob1.Imprimir("Hola",40);
    ob1.Imprimir("Hola",40,12);

Los parámetros opcionales deben ser siempre los últimos que indiquemos. El parámetro mensaje no es opcional por lo que si o si debe especificarse.

Problema 1:

Implementar un método que muestre un mensaje en la pantalla con dos parámetros opciones que indiquen la columna y la fila donde imprimir.

Programa:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ParametrosOpcionales1
{
    class Program
    {
        public void Imprimir(string mensaje, int col = 1, int fil = 1)
        {
            Console.SetCursorPosition(col, fil);
            Console.Write(mensaje);
        }
        static void Main(string[] args)
        {
            Program ob1 = new Program();
            ob1.Imprimir("Hola");
            ob1.Imprimir("Hola", 40);
            ob1.Imprimir("Hola", 40, 12);
            Console.ReadKey();
        }
    }
}

Problema propuesto

  1. Confeccionar un método que muestre los primeros 10 números pares. En caso que le pasemos un parámetro opcional mostrar tantos pares como indica el parámetro.
Solución
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ParametrosOpcionales2
{
    class Program
    {
        public void Pares(int cant = 10)
        {
            int par = 2;
            for (var x = 1; x <= cant; x++)
            {
                Console.Write(par + "-");
                par = par + 2;
            }
        }
        static void Main(string[] args)
        {
            Program ob1 = new Program();
            ob1.Pares();
            Console.WriteLine();
            Console.WriteLine();
            ob1.Pares(20);
            Console.ReadKey();
        }
    }
}



Retornar