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

C#三目表达式报错:int与string无隐式转换的问题如何解决

错误原因

三元运算符的两个返回分支必须使用可隐式转换的类型,你当前代码中:

  • 条件不成立的分支返回int类型的-1
  • 条件成立的分支返回string类型的text2
    二者不存在隐式转换关系,因此触发编译错误。

修复方案

你只需要将-1转换为字符串类型,保证两个分支返回值类型统一即可,修改后的报错行代码如下:

int num = Conversions.ToInteger((!Versioned.IsNumeric(text2)) ? "-1" : text2);

可选优化(更符合C#原生开发习惯)

你当前用的Conversions、Versioned.IsNumeric都是VB.NET兼容库的类,如果你想脱离VB兼容依赖,可以直接用C#原生的int.TryParse实现相同逻辑,代码更简洁安全:

if (!int.TryParse(text2, out int num))
{
    Interaction.MsgBox(string.Format("Entering characters is not allowed ---> {0}", text2), MsgBoxStyle.Critical, Class10.string_4);
}
// 后续逻辑保持不变即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:45:02