【问题标题】:C# Returning Wrong Integer ValueC# 返回错误的整数值
【发布时间】:2023-01-22 11:16:40
【问题描述】:

我试图根据用户的输入返回一个索引,输入只有 2 个字符,比如 a1、b2、c3...

public int returnInt(string x)
        {
            if (x == "a")
                return 0;
            else if (x == "b")
                return 1;
            else if (x == "c")
                return 2;
            else if (x == "d")
                return 3;
            else if (x == "e")
                return 4;
            else if (x == "f")
                return 5;
            else if (x == "g")
                return 6;
            else if (x == "h")
                return 7;
            else if (x == "1")
                return 0;
            else if (x == "2")
                return 1;
            else if (x == "3")
                return 2;
            else if (x == "4")
                return 3;
            else if (x == "5")
                return 4;
            else if (x == "6")
                return 5;
            else if (x == "7")
                return 6;
            else if (x == "8")
                return 7;
            return 0;
        }

这就是我使用方法的地方:

var toMove = myButtonArray[returnInt(totxt.Text.Substring(0)), returnInt(totxt.Text.Substring(1))];

该方法适用于第二个子字符串,但不适用于第一个子字符串 (0)。谁能帮我解决这个问题?当我键入 a1 时,程序应该返回 1 和 1,但它只为第一个子字符串返回 0。

【问题讨论】:

  • 子字符串返回第一个参数中给出的索引之后的所有内容。查看文档和其中的示例。
  • 使用 String.Substring 函数的第二个重载版本。换成var toMove = myButtonArray[returnInt(totxt.Text.Substring(0,1)), returnInt(totxt.Text.Substring(1,1))];

标签: c# forms methods return return-value


【解决方案1】:

让我们用单机操作人物, 不是细绳年代:

public int returnInt(char x) =>
    x >= 'a' && x <= 'h' ? x - 'a'
  : x >= '1' && x <= '8' ? x - '1'
  : 0;

然后你可以放:

var toMove = myButtonArray[returnInt(totxt.Text[0]), returnInt(totxt.Text[1])];

请注意,我们得到0号第一char,不是string

【讨论】:

    【解决方案2】:

    由于您的输入字符串始终只有 2 个字符,并且您想将它们用作二维数组的索引,因此您需要将代码更改为以下内容:

    var toMove = myButtonArray[returnInt(totxt.Text.Substring(0,1)), 
                               returnInt(totxt.Text.Substring(1,1))];
    

    这样你就可以对 String.Substring 函数说一次返回 1 个字符,并将起始索引作为第一个输入参数。

    【讨论】:

      【解决方案3】:

      问题关闭,我解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2018-03-15
        • 2015-12-28
        • 2014-04-29
        • 2023-03-08
        • 1970-01-01
        • 2016-04-13
        • 2019-03-23
        • 1970-01-01
        • 2018-09-21
        相关资源
        最近更新 更多