2013-09-02 2 views
0

я в конечном итоге с двумя процедурами, с очень похожими аргументами и одинаковой функциональностью, аргументами которых являются следующие:Проходя через массив Params к другому методу

private string BuildResponse(string value1, string value2, params string[] parameters) 
    private string BuildResponse(MyObject values, params string[] parameters) 

В этом случае MyObject имеет два свойства; value1 и value2. Я был изначально пытаюсь реализовать вторую следующим образом:

private string BuildResponse(MyObject values, params string[] parameters) { 
     return BuildResponse (values.value1, values.value2, parameters); 
    } 

К сожалению, компилятор бросил предупреждение, относящееся к best overloaded method match for ... - то есть я не мог просто пройти parameters (который является string[]) через подобную.

Так как я могу передать string[] в метод, подпись которого заканчивается переменной params?

(Я теперь заменяю params string[] другим типом коллекции, а не тем временем прошедшего времени, но было бы интересно узнать, возможно ли то, что я пытаюсь сделать, если это не так, не стесняйтесь состояние «нет» и предоставить ссылки)

ответ

3

Это должно было сработать. Проблема, скорее всего, заключалась в том, что value1 или value2 не было типа string. Массив params не был проблемой.

+0

Вы близко, я был немного глупым - когда я создал свою упрощенную версию, мне удалось случайно ** не совершить ошибку, которая была в живом коде. –