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

C#中可空short类型简写赋值类型不匹配问题求解

解决方案

问题根源是三元运算符要求两个分支的返回类型必须可隐式兼容:short.Parse返回值是值类型short,而null属于null类型,两者无法自动统一类型,因此编译报错。以下是两种保留简写风格的解决方法:

  • 显式统一分支类型
    将short.Parse的结果强制转换为short?类型,让两个分支的类型统一为可空短整型:

    short? var = textbox.Text.Length > 0 ? (short?)short.Parse(textbox.Text) : null;
    
  • 更健壮的容错写法
    直接使用short.Parse会在输入非数字文本时抛出异常,推荐结合TryParse实现更安全的简写,同时满足类型兼容要求:

    short? var = short.TryParse(textbox.Text, out short val) ? val : (short?)null;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:32:02