#c#
#c#
Вопрос:
Я пытаюсь запустить тест NUnit для поиска чисел в строке. Я использую TryParse, но он выдал мне следующую ошибку: Error1: наилучшее соответствие перегруженного метода для ‘int.TryParse(string, out int)’ имеет несколько недопустимых аргументов.
Не могли бы вы, ребята, сказать мне, что я делаю не так?
[Test]
public void ThenSearchForBrittanyShouldFindOneUser()
{
var searchresult = LuceneFullTextSearch.SuggestSimilar("brit123", 1).ToArray();
int num = 0;
foreach (var result in searchresult)
{
if (result = int.TryParse(searchresult, out num))
{
searchresult.ShouldNotBeEmpty();
searchresult.ShouldContain("Brittany");
searchresult.Should().Count.NoMoreThan(1);
}
else
{
searchresult.ShouldNotBeEmpty();
searchresult.Equals(num);
Комментарии:
1. Сначала вы не хотите ничего назначать в условном выражении. Просто сделайте int. Попробуйте проанализировать (string, out int) в вашем условном выражении, иначе вы будете выглядеть как нуб. Я бы использовал result, а не searchresult
2.
searchResult
выглядит как перечисляемый, а не строка. Это больше всего похоже на ошибку опечатки.foreach (var result in searchResult)
=> Держу париresult
, это должен быть ваш строковый ввод в int. Попробуйте проанализировать (и тогда вы также не будете использовать его в качествеTryParse
возвращаемого значения метода).
Ответ №1:
searchresult
это массив, а не строка; вы хотите result
вместо этого.
Кроме того, у вас не может быть присваивания в if
условном, поэтому ваш синтаксис в любом случае неверен. TryParse
уже возвращает bool, поэтому вам следует попробовать:
if (int.TryParse(result, out num))
{
...
Ответ №2:
Использовать
if (int.TryParse(result, out num))