`

tip: C# check nullity, assignment and return in one statement

    博客分类:
  • C#
C# 
阅读更多

It is a common practise to check if a variable is null, and if it is null, assign some value to it, then return the assigned variable, or just return the cached value if the variable is not nulll..

 

suppose you have  a field called m_mydelegateCommand, and you want to ensure non-null value is returned. 

 

you may do this 

 

    private DelegateCommand<object> m_mydelegateCommand;
    public DelegateCommand<object> MyDelegateCommand {
      get
      {
        if (m_mydelegateCommand == null) m_mydelegateCommand = new DelegateCommand<object>(MyDelegateCommandExecuted);
        return m_mydelegateCommand;
      }
    }
 

With the help of conditional expression, you may do this.

 

    private DelegateCommand<object> m_mydelegateCommand;
    public DelegateCommand<object> MyDelegateCommand {
      get
      {
        return m_mydelegateCommand != null ? m_mydelegateCommand : m_mydelegateCommand = new DelegateCommand<object>(MyDelegateCommandExecuted);

      }
    }
 

With the help from Nullale operator ??, you can do even simpler as this:

 

    private DelegateCommand<object> m_mydelegateCommand;
    public DelegateCommand<object> MyDelegateCommand {
      get
      {
        return m_mydelegateCommand ?? (m_mydelegateCommand =  new DelegateCommand<object>(MyDelegateCommandExecuted));
      }
    }
 

 

 

分享到:
评论

相关推荐

    Advanced Linear Algebra

    The Rank Plus Nullity Theorem, 63 Linear Transformations from to , 64 Change of Basis Matrices, 65 The Matrix of a Linear Transformation, 66 Change of Bases for Linear Transformations, 68 ...

    nutility-mobile-app:适用于移动设备的 Nullity 版本

    营养流动应用程式移动设备营养版

    JavaFX-Row-Reduced-Echelon-Form-calculator:该项目是使用javaFx的矩阵行简化梯形表格计算器,它可以计算任何nxn矩阵的RREF并显示其秩和无效性,以及(可选)计算过程的步骤

    JavaFX行缩减梯形表格计算器该项目是使用javaFx的矩阵行简化梯形表格计算器,它可以计算任何nxn矩阵的RREF并显示其秩和无效性以及可选的计算过程步骤

    php入门留言板 php+access PHP语言基础

    【PHP】php入门留言板 php+access PHP语言基础 【实例简介】php入门留言板 php access php入门留言板 让你轻松学会php 基本语言结构.php连 access数据库的语法以及功能.php access 【核心代码】 文件清单 ├── admin.php ├── detail.php ├── images │ ├── arrow2.gif │ ├── arrow.gif │ ├── bg.gif │ ├── bottom-bg.gif │ ├── column.gif │ ├── dished_x.gif │ ├── favicon.ico │ ├── layout-bodybg.gif │ ├── layout-footer.gif │ ├── layout-top.gif │ ├── li-right.gif │ └── Thumbs.db ├── inc │ ├── config.php │ ├── conn.php │ └── data.mdb ├── index.php ├── sty

    关于C语言的学习代码和C语言的刷题代码.zip

    C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。 [5] C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

    安卓图片上传和文件上传带jsp服务端源码.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    物资管理系统项目源码.rar

    物资管理系统项目源码.rar是一个综合性的软件开发包,旨在为高校学生提供一个完整的框架和参考实现,以便他们能够进行毕业设计或课程设计。这个压缩包包含了多个关键组件,如用户认证、库存管理、订单处理、报表生成等模块,每个模块都配备了详细的文档和代码实例,确保学生可以快速理解并开始构建自己的物资管理系统。该系统采用了现代的软件架构理念,比如MVC模式,使得前后端分离,便于维护和升级。同时,它支持多种数据库系统,如MySQL、SQLite等,提供了数据持久化的灵活性。在安全性方面,系统实现了基于角色的访问控制,保障了操作的权限划分。此外,它还考虑了用户体验,界面友好,操作直观。对于即将步入职场的软件工程专业的学生而言,通过分析和扩展这个源码包中的项目,不仅可以锻炼他们的编程实践能力,还能帮助他们理解企业级应用的开发流程和标准。无论是作为学习资源还是实践平台,物资管理系统项目源码.rar都是一个宝贵的资料,有助于学生将理论知识转化为实际操作技能,为他们日后的职业发展奠定坚实的基础。问问助手:解决方案编制助手重新回答||

    可二次开发程序员表白代码.rar

    “可二次开发程序员表白代码.rar”是一个专为计算机专业的学生和编程爱好者设计的源码文件包,它旨在帮助用户通过编写和定制专属的表白程序来表达他们的情感。这个文件包不仅适合作为毕业设计或课程设计项目,而且也是一个绝佳的实践工具,用于提升编程技能和理解软件开发的全过程。该源码文件包含有多个模块,每个模块都经过精心设计,易于理解和修改,以适应不同的个性化需求。用户可以在这些模板的基础上进行二次开发,添加自己的创意元素,如特定的文本信息、背景音乐、动画效果等,使得表白程序更具个性和情感色彩。此外,源码文件包还附带详细的文档说明和注释,为初学者提供了丰富的学习资源。通过阅读和实践这些材料,学生能够深入理解编程语言的本质,提高解决实际问题的能力,并学会如何将理论知识应用到实际项目中。总之,“可二次开发程序员表白代码.rar”不仅是一个富有创意和技术挑战的项目,它还鼓励用户发挥想象力,用技术的方式传达爱意,是一份融合了情感与科技、教育与娱乐的独特礼物。问问助手:资深编程大师重新回答||

    数字同轴全息显微术中孪晶图像去除的神经网络方法matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    返回键退出程序的两种方式.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    浮动窗口.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    二维码扫描案例.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    基于matlab的CDMA

    写出所有n=5的m序列发生器的特征多项式,画出电路结构,仿真生成m序列并运算,画出其自相关和互相关曲线。

    基于单片机的智能家居环境监控系统的设计,单片机能够检测家居环境并显示,根据数据智能预警

    当今家居生活中面临各种环境与健康安全问题,如空气湿度过低,容易让人患上呼吸系统的疾病;CO、甲醛等有害气体危害人体健康;天燃气泄漏引起的爆炸事故频发等。人们对高品质生活环境的追求越来越强烈,所以居住环境的各种参数得到了大家的广泛重视。随着智能化与信息化的快速发展,我们可以利用现代科技对家居环境进行监测及调整,使我们的居住体验更加美好。 本设计完成一个可以监测温湿度、有害气体以及非法入侵的智能家居监控系统,包括主控模块、传感器模块、显示模块、报警驱动模块等。 系统的控制核心是STC89C52单片机,通过DHT11传感器来监测室内温湿度,烟雾传感器MQ-2监测有害气体烟雾浓度,HC-SR501传感器用来监测人体信号,按键电路可以设置监测数据上下限阈值及人体红外监测布防状态,当超过阈值时,蜂鸣器和LED灯声光报警,同时通过继电器驱动相应电器,实时对家居环境进行调控。此外,通过LCD1602液晶屏显示实时温湿度、烟雾浓度等信息供人们实时了解家庭环境状况,从而保证家庭生活环境的安全与舒适。

    网易推出的AI智能翻译平台,支持音频、文档、图片、字幕等.txt

    网易推出的AI智能翻译平台,支持音频、文档、图片、字幕等.txt

    NC65 UAP65 主子单据开发 带审批流 详细笔记

    NC65 UAP65 主子单据开发 带审批流 详细笔记,共同学习,共同进步。

    机械臂的碰撞检测研究.pdf

    机械臂的碰撞检测研究.pdf

    c语言-c语言编程基础之leetcode题解第23题合并K个升序链表.zip

    c语言 c语言_c语言编程基础之leetcode题解第23题合并K个升序链表

    Swift代码转换指南(Swift Swift Code Convension Guide .)

    【Swift】说明:Swift Swift代码转换指南。 (Swift Swift Code Convension Guide .) 文件列表: CODE_OF_CONDUCT.md LICENSE 【Swift】说明:Swift Swift代码转换指南。

    不确定性移动机械臂的轨迹跟踪控制研究.doc

    不确定性移动机械臂的轨迹跟踪控制研究.doc

Global site tag (gtag.js) - Google Analytics