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

C#开发Hangman游戏:如何从方法正确返回二维数组

修正后的Hangman游戏ProcessWord方法实现

原代码核心问题

  • 方法返回类型不匹配:声明返回char[]但实际要返回二维数组char[,]
  • 不必要且错误的out参数:out char UncoveredArray定义为单个字符,和实际需要的二维数组类型不符,且无需用out传递结果
  • Main方法中错误的数组初始化与调用逻辑

修正后的完整代码

Main方法部分

static void Main(string[] args)
{            
    NewGame Hangman = new NewGame();
    string Answer = Hangman.GetWord();
    
    // 直接接收ProcessWord返回的二维数组,无需提前初始化
    char[,] UncoveredArray = Hangman.ProcessWord(Answer);
}

ProcessWord方法部分

// 修正返回类型为二维char数组,移除错误的out参数
public char[,] ProcessWord(string Answer)
{
    char[] chars = Answer.ToCharArray();
    // 初始化二维数组:每行存原字符和显示字符
    char[,] UncoveredArray = new char[chars.Length, 2];

    for (int i = 0; i < Answer.Length; i++)
    {
        if (chars[i] == ' ')
        {
            Console.Write("/");
            UncoveredArray[i, 0] = chars[i];
            UncoveredArray[i, 1] = '/';
        }
        else if (char.IsPunctuation(chars[i]))
        {
            Console.Write(chars[i]);
            UncoveredArray[i, 0] = chars[i];
            UncoveredArray[i, 1] = chars[i];
        }
        else
        {
            Console.Write("_");
            UncoveredArray[i, 0] = chars[i];
            UncoveredArray[i, 1] = '_';
        }
    }
    // 返回正确类型的二维数组
    return UncoveredArray;
}

修正说明

  • 调整ProcessWord的返回类型为char[,],匹配实际要返回的二维数组类型
  • 移除了冗余且类型错误的out参数,直接通过方法返回结果简化逻辑
  • Main方法中不再提前初始化数组,直接接收方法返回的二维数组即可使用
  • 保持了原有的显示规则:空格转/、标点保留原样、字母转_,同时正确填充二维数组的原字符和显示字符列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:30:51