You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何为用户输入的字符串映射int值及编译报错解决

报错原因解释

1. 关于Not all code paths return a value报错

你声明的Method方法返回值类型是int,要求所有执行分支都必须返回一个int类型的结果。你目前只写了输入等于Rock时的return逻辑,只要用户输入其他内容(比如Paper、Scissors或者任意非Rock的字符串),if条件不成立,方法执行到最后没有返回任何值,就会触发这个报错。

2. 关于There is no argument given that corresponds to the required formal parameter 'choice' of 'RockPaperScissors.Method()'报错

这个报错说明你实际运行的代码和你贴出的版本存在差异:你贴的代码里Method是无参的,但你运行的版本里Method定义了名为choice的必填参数,调用Method()的时候没有传参才会触发该问题。如果是中途修改了代码没保存,或者VS Code编译缓存没清,保存文件后重新编译即可解决。

代码修正方案

补全所有判断分支,再增加默认的无效输入返回逻辑即可,修改后的参考代码如下:

using System;

class RockPaperScissors
{
    static int Method()
    {
        string playerString = Console.ReadLine();
        // 定义三个选项对应的数值
        const int Rock = 1;
        const int Paper = 2;
        const int Scissors = 3;

        if (playerString == "Rock")
        {
            return Rock;
        }
        else if (playerString == "Paper")
        {
            return Paper;
        }
        else if (playerString == "Scissors")
        {
            return Scissors;
        }
        // 输入不匹配的情况返回0代表无效输入
        else
        {
            return 0;
        }
    }

    static void Main()
    {
        int Move = Method();
        if (Move == 0)
        {
            Console.WriteLine("输入无效,请输入Rock、Paper或Scissors");
        }
        else
        {
            Console.WriteLine(Move);
        }
    }
}

内容的提问来源于stack exchange,提问作者BreadSkirt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:18:02