3.检查函数 if (!CheckStart()) return 的妙用 C#例子

在桌面/WPF 开发中,我们经常需要在按钮事件里先判断"能不能做",再决定"怎么做"。如果校验不过,就直接返回;校验通过,才继续执行业务逻辑。

今天分享一个极简写法:if (!CheckStart()) return;,只需一行即可把校验与主流程解耦,让代码既干净又易读。


一、为什么推荐这种写法?

  1. 省掉嵌套 :传统做法会把全部逻辑包在一层 if 里,缩进越来越深;用 return 提前终止,主流程保持"一马平川"。

  2. 语义直观:读代码时一眼就能知道------"校验不过就拉闸"。

  3. 复用方便CheckStart() 里可以放任何通用规则,比如

    • 端口是否已打开

    • 授权是否有效

    • 配置是否完整

      需求变了,只改一处即可。


二、示例

事件触发后,先执行 CheckStart() 进行一次性前置检查:

  • 若返回 false,立即中断流程;

  • 若返回 true,继续后续主逻辑。

cs 复制代码
private void Button_RFSwitch(object sender, RoutedEventArgs e)
{
    // 1. 前置校验:不通过直接返回
    if (!CheckStart()) return;

    // 2. 主流程:切换 RF 开关
    ......
}

CheckStart()检查函数的定义

cs 复制代码
        private bool CheckStart()
        {
            if (vSG == null)
            {
                MessageBox.Show("未初始化");
                return false;
            }
            return true;
        }

三、小结

一行 if (!CheckStart()) return;,看似不起眼,却是"防御式编程"的精髓:

  • 早失败、早返回

  • 逻辑分层、职责单一

  • 代码更短、可读性更高

下次写按钮事件,不妨试试这个小技巧,让你的 C# 代码瞬间清爽起来!

相关推荐
奔波霸的伶俐虫2 小时前
jeecg框架@Dict不生效问题
开发语言·python
YY_TJJ3 小时前
8.4 Java Web(Maven P50-P57)
java·开发语言·maven
pusue_the_sun4 小时前
从零开始搞定类与对象(中)
开发语言·c++·学习
BuHuaX4 小时前
Unity_数据持久化_IXmlSerializable接口
xml·unity·c#·游戏引擎·游戏策划
咕噜咕噜啦啦4 小时前
Qt按键响应
开发语言·qt
raoxiaoya4 小时前
Golang中的`io.Copy()`使用场景
开发语言·后端·golang
屁股割了还要学4 小时前
【数据结构入门】链表
c语言·开发语言·数据结构·c++·学习·算法·链表
格林威5 小时前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现路口车辆速度的追踪识别(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉·c#·视觉检测
wjs20245 小时前
Lua 数据类型
开发语言
源代码•宸5 小时前
C++高频知识点(十四)
开发语言·c++·经验分享·raii