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

C#将二维char数组元素传入TryParse时触发类型转换错误如何解决?

报错原因

byte.TryParse 方法不存在接收char类型输入参数的重载,你代码中通过boardValues[location[0],location[1]]取到的是char类型值,编译器匹配重载时尝试将char隐式转换为参数要求的System.ReadOnlySpan<char>,但两种类型没有对应的隐式转换规则,因此抛出该错误。

解决方案

提供两种可行方案,可根据需求选择:

  • 方案1:最小改动适配原有逻辑
    只需将取到的char值转为字符串后再传入TryParse即可,修改后的if判断语句如下:
    if (byte.TryParse(boardValues[location[0],location[1]].ToString(), out _))
    
  • 方案2:优化判断逻辑,执行效率更高
    你的核心需求是判断当前格子是否为未被占用的初始数字字符,无需走数值解析逻辑,直接判断字符范围即可,代码更简洁性能也更好:
    if (boardValues[location[0], location[1]] is >= '1' and <= '9')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:36:03