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# 代码瞬间清爽起来!

相关推荐
Wadli几秒前
C++语法 | static静态|单例模式
开发语言·c++·单例模式
他们都不看好你,偏偏你最不争气23 分钟前
【iOS】AFNetworking
开发语言·macos·ios·objective-c
Bigemap30 分钟前
BigemapPro快速添加历史影像(Arcgis卫星地图历史地图)
java·开发语言
进击的_鹏43 分钟前
【C++11】initializer_list列表初始化、右值引用和移动语义、可变参数模版等
开发语言·c++
mark-puls1 小时前
C语言打印爱心
c语言·开发语言·算法
西阳未落1 小时前
C语言柔性数组详解与应用
c语言·开发语言·柔性数组
Huhbbjs1 小时前
SQL 核心概念与实践总结
开发语言·数据库·sql
咕噜咕噜啦啦1 小时前
Qt之快捷键、事件处理、自定义按键——完成记事本项目
开发语言·qt
Source.Liu1 小时前
【Pywinauto库】12.1 pywinauto.backend 后端内部实施模块
开发语言·windows·python·自动化
晚云与城1 小时前
今日分享:C++ deque与priority_queue
开发语言·c++