| 64 - Número variable de parámetros | 
Hasta ahora hemos planteado métodos que reciben una cantidad fija de parámetros, pero C# permite implementar métodos con una cantidad variable de parámetros (es decir que llamemos al método pasando en algunas circunstancias pasándole dos parámetros y en otras pasándole 5)
Para resolver esto C# incorpora la palabra clave params y seguidamente un vector.
Implementar un método que le envíe una cantidad n de enteros y me retorne la suma de los mismos.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ParametrosVariables1
{
    class Program
    {
        public int Sumar(params int[] p)
        {
            int su = 0;
            for (var f = 0; f < p.Length; f++)
            {
                su = su + p[f];
            }
            return su;
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            Console.Write("La suma de 3,4,5 es ");
            Console.WriteLine(p.Sumar(3,4,5));
            Console.ReadKey();
        }
    }
}
Como podemos ver le antecedemos al nombre del vector la palabra clave params:
        public int Sumar(params int[] p)
        {
            int su = 0;
            for (var f = 0; f < p.Length; f++)
            {
                su = su + p[f];
            }
            return su;
        }
La diferencia fundamental es que desde donde llamamos al método no le pasamos un vector de enteros, sino una lista de parámetros enteros:
            Console.WriteLine(p.Sumar(3,4,5));
Un método solo puede tener un solo parámetro de este tipo y debe ser siempre el último, por ejemplo:
        public int Sueldos(string nombre,params float[] su)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ParametrosVariables2
{
    class Program
    {
        public int Operar(string operacion, params int[] v)
        {
            if (operacion == "suma")
            {
                int suma = 0;
                for (var f = 0; f < v.Length; f++)
                {
                    suma = suma + v[f];
                }
                return suma;
            }
            if (operacion == "producto")
            {
                int producto = 1;
                for (var f = 0; f < v.Length; f++)
                {
                    producto=producto * v[f];
                }
                return producto;
            }
            return int.MaxValue;
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            Console.Write("El producto de 2*3*4 es ");
            Console.WriteLine(p.Operar("producto", 2, 3, 4));
            Console.Write("La suma de 5+10 es ");
            Console.WriteLine(p.Operar("suma", 5, 10));
            Console.ReadKey();
        }
    }
}