У меня есть метод, который обрабатывает двойные массивы. Я поставляю двойные массивы, используя ключевое слово params
. Моя проблема в том, что иногда мне приходится пропускать и парные, и я хочу использовать один и тот же метод для обоих типов. В настоящее время метода есть подписьКак сделать двойной или двойной массив в двойной массив всегда в C#
public void DoSomething(params double[][] arrays)
Над определения методы отлично работает для следующих аргументов:
double [] array = new double []{2,3,5} ;
double [] anotherarray = new double []{7,8,10} ;
DoSomething (array, anotherarray) ;
Я вещь, чтобы передать объект, а затем бросить их в этом методе и использовать поймать блок попробовать, и я не знаю, это правильный подход или существует какой-то элегантный способ справиться с такой ситуацией, потому что я могу иметь смешанные данные в качестве входных аргументов.
public void DoSomething(params object objs)
{
// for loop
try
{
var tempdata = (double) objs(loop index);
double[] data = new double[] { tempdata };
}
catch
{
var tempdata = (double []) objs(loop index);
double [] data = tempdata;
}
// do other opertaion
}
Я хочу назвать так:
double [] array = new double []{2,3,5} ;
double singlevalue = 10 ;
double [] anotherarray = new double []{7,8,10} ;
DoSomething (array, singlevalue, anotherarray) ;
Почему вы не перегружаете метод? –
Я упомянул, что мои данные могут быть смешанного типа и из-за которых я ищу такую функциональность. – User1551892
@JonSkeet: если он делает то же самое, что, например, для парных и синглов, вам не нужно в какой-то момент вызывать общую перегрузку или либо повторить весь код? (извиняюсь, если я нахожусь здесь медленнее в пятницу утром). – Chris