Как я могу написать функцию 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, но это далеко за пределами моих знаний.