¿Cómo puedo codificar una función C # para aceptar un número variable de parámetros?

Tengo un método C # que me gustaría utilizar para actualizar algunos datos. El método podría pasar una cadena, un doble, un entero

public void Update(string ac, string pr, string fld, Int32 intVal = null, double dblVal = null, string strVal = null)
{

Dependiendo del valor de fld, me gustaría actualizar un nombre de campo determinado en mi tabla.

Existe alguna forma de codificar los parámetros de la función para no tener que proporcionar una larga lista de posibles tipos de valores?

Idealmente me gustaría poder llamar a esta función de esta manera:

Update("key1", "key2", "location", "London");
Update("key1" , "key2", "beds", 2);
Update("key1" , "key2", "price", 123.45);

Luego, dentro de la actualización de la función, me gustaría tener:

public void Update(string ac, string pr, xxx, yyy)
    {
        try
        {
            vm.Product = _product.Get(ac, pr);
            vm.Product.xxx = yyy;
            _product.AddOrUpdate(vm.Product);
        }
        catch (Exception e) { log(e); }
    }

En el xxx me gustaría dar el nombre del campo y aaa el valor real. Tal vez dentro de la función podría hacer algún tipo de conversión con un método de caso basado en el nombre del campo. Solo tengo una pequeña cantidad de nombres de campo, así que podría ser fácil. También tal vez haya una manera de encontrar el tipo de datos a partir del reflejo de la clase vm, pero eso está más allá de mi conocimient

Respuestas a la pregunta(8)

Su respuesta a la pregunta