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

C#中如何简化执行方法调用而非返回值的if条件语句

C# 无返回值方法调用场景的if逻辑简化方案

待简化的原始逻辑为:目标字符串不为空字符串时,向DataGridView控件新增行并传入该字符串,原始代码如下:

if (string != "")
{
   dataGridView1.Rows.Add(string);
}

目前常见资料大多仅介绍带返回值场景下的三元运算符简化写法,未覆盖if块内仅执行方法调用(返回值无需使用)的场景,以下是可行的简化方案:

  • 方案1:利用&&短路逻辑特性(单场景使用最简洁)
    C#中的&&逻辑与运算符具备短路特性:仅当左侧表达式计算结果为true时,才会执行右侧的表达式。由于C#允许将方法调用作为独立语句(不需要强制接收方法返回值),因此可以直接把if判断和方法调用用&&连接,完全替代单if块的写法:
// 和原始逻辑完全等价,仅判断是否为空字符串
string != "" && dataGridView1.Rows.Add(string);

// 更鲁棒的优化写法,同时兼容字符串为null的场景,避免触发空引用异常
!string.IsNullOrEmpty(string) && dataGridView1.Rows.Add(string);

这种写法可以正常通过编译,运行逻辑和原始if块完全一致,没有额外性能开销。

  • 方案2:封装通用扩展方法(适合多场景复用)
    如果项目中存在大量「字符串非空才执行对应操作」的重复逻辑,可以封装一个通用的字符串扩展方法,统一非空判断规则,减少重复代码:
// 扩展方法静态类中定义
public static void IfNotNullOrEmpty(this string target, Action<string> executeAction)
{
    if (!string.IsNullOrEmpty(target))
    {
        executeAction(target);
    }
}

// 业务代码中的调用写法
str.IfNotNullOrEmpty(s => dataGridView1.Rows.Add(s));

使用建议

不要为了刻意缩短代码行数牺牲可读性。如果对应逻辑仅在代码中出现一次,原生if块的写法反而是可读性最高的,所有开发者都能一眼看懂逻辑,不需要额外承担特殊写法的认知成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:48:22