Как я могу написать функцию C #, чтобы принимать переменное число параметров?

У меня есть метод C #, который я хотел бы использовать для обновления некоторых данных. Метод может быть передан либо строка, двойной, целое число

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

В зависимости от значения поля я хотел бы обновить определенное имя поля в моей таблице.

Есть ли какой-то способ, которым я мог бы закодировать параметры функции, чтобы мне не пришлось предоставлять длинный список возможных типов значений?

В идеале я хотел бы иметь возможность вызывать эту функцию следующим образом:

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

Тогда внутри обновления функции я хотел бы иметь:

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); }
    }

В ххх я хотел бы дать имя поля и yyy фактическое значение. Возможно, внутри функции я мог бы выполнить какое-то приведение с помощью метода case, основанного на имени поля. У меня есть только небольшое количество имен полей, так что это может быть легко. Также, возможно, есть способ, которым я мог бы найти тип данных по отражению класса vm, но это далеко за пределами моих знаний.

Ответы на вопрос(4)

Ваш ответ на вопрос