Попробуйте проанализировать недопустимые аргументы

#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))