2016-03-10 2 views
0

У меня есть следующий код:Как я могу заставить эту перегруженную функцию param работать?

public static void AssertTdsExist(this RemoteWebDriver driver, string id, params string[] tds) 
{ 
    ... 
} 

public static void AssertTdsExist(this RemoteWebDriver driver, params string[] tds) 
{ 
    ... 
} 

Теперь, когда я Driver.AssertTdsExist("pol_imp"); первый метод вызывается. Но я хочу вызвать второй метод.

Как мне изменить этот код, чтобы он работал?

+1

http://stackoverflow.com/questions/1479364/c-sharp-params-keyword -with-two-parameters-of-the-same-type – CodeCaster

+0

Не получить ошибку «Нет перегрузки для метода« AssertdsExists »принимает 1 аргумент? – StarterPack

+0

@StarterPack Нет, он компилируется красиво и аккуратно. – Drutten

ответ

1

Самый простой вы можете сделать, это ничего не меняется, а просто вызовите ваш метод с именованными параметрами, так что нет никакой двусмысленности:

// assuming you retrieve your params from somewhere 
    var tdsArray = new string[] {"pol_imp"}; 
    var myDriver = GetDriver(); 
    var myId = GetId(); 

    myDriver.AssertTdsExist(tds: tdsArray); 
    // or this, to call the other method 
    myDriver.AssertTdsExist(tds: tdsArray, id: myId); 
+0

Да, это приятное предложение! Хотя не представляется необходимым создавать строковый массив, 'myDriver.AssertTdsExist (tds:" pol_imp ")' работает. Хотя я удалил свою перегрузку и вместо нее использовал null для id. Это слишком подвержено ошибкам. – Drutten

2

Вы можете поставить аргумент в массиве строк:

Driver.AssertTdsExist(new string[] { "pol_imp" }); 

Это соответствует только второму методу.

1

Вы можете изменить строку Id в StringBuilder так будет будет отличаться друг от друга ... как этот

государственной статической силы AssertTdsExist (этот драйвер RemoteWebDriver, StringBuilder идентификатор, Params String [] ТДС) { ... }

государственной статической силы AssertTdsExist (этот драйвер RemoteWebDriver, Params String [] ТДС) { ... }

+0

Да, но для этого требуется много переписать код. – Drutten

Смежные вопросы