【问题标题】:TryParse Invalid ArgumentsTryParse 无效参数
【发布时间】:2014-06-17 18:37:11
【问题描述】:

我正在尝试运行 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);

【问题讨论】:

  • 首先你不想在条件中分配任何东西。只需在您的条件中执行 int.TryParse(string,out int) ,否则您看起来像一个小块。我会使用结果而不是搜索结果
  • searchResult 看起来像可枚举的,而不是字符串。这似乎更像是一个错字错误。 foreach (var result in searchResult) => 我打赌 result 应该是您输入 int.TryParse 的字符串(然后您也不会将其用作 TryParse 方法的返回值)。

标签: c#


【解决方案1】:

searchresult 是数组,不是字符串;你想要result 代替。

此外,您不能在 if 条件中进行赋值,因此无论如何您的语法都是错误的。 TryParse 已经返回一个布尔值,所以你应该尝试:

    if (int.TryParse(result, out num))
    {
         ...

【讨论】:

    【解决方案2】:

    使用

    if (int.TryParse(result, out num))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-21
      • 2014-12-31
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多