• c# 判断 值 是否为NUll


    (1) NULL 
    null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。C#允许使用==或!=来判断是否为NULL,例如:if(dataGridView2.CurrentRow != null) ...。


    (2) DBNULL 
    DBNull在DotNet是单独的一个类型,该类只能存在唯一的实例,DBNULL.,DBNull唯一作用是可以表示数据库中的字符串,数字,或日期,为什么可以表示原因是DotNet储存这些数据的类(DataRow等)都是以 object 的形式来储存数据的。对于 DataRow , 它的 row[column] 返回的值永远不为 null , 要么就是具体的为column 的类型的值 。 要么就是 DBNull 。 所以 row[column].ToString() 这个写法永远不会在ToString那里发生NullReferenceException。DBNull 实现了 IConvertible 。但是,除了 ToString 是正常的外,其他的ToXXX都会抛出不能转换的错误。

    判断DBNULL的方法:

    1、用OleDbDataReader.isDBNull()方法,()内是列序号

    2、因为上面方法需要知道列序号,而很多时候我们只知道列名,那么干脆用OleDbDataReader[“列名”].toString() != ""来判断它的值不是空或者DBNull

    3、用Convert.isDBNull(判断对象)方法进行判断,()内填写要判断的表达式

    --------------------------------------------------------------------------------------------------------------------------

    注:

    1、另外,当一个变量(非引用变量)声明,但是未初始化时,该变量的默认值并非NULL,而为系统设置的默认值,如Bool型的默认值为FALSE。

    bool isHere;

    messgebox.show(isHere.tostring());   //尽管没有对isHere赋值,但仍可以使用其默认值,FALSE

    2、如果需要使用可以使用null值的int、bool等类型型,可以使用int?、bool?类型。还可以将 == 和 != 操作数用于可为 null 的类型,如:if (x != null) y = x;

    示例1:

       1: int? y = 10;
       2: if (y != null)
       3: {
       4:     System.Console.WriteLine(y.Value);
       5: }
       6: else
       7: {
       8:     System.Console.WriteLine("Undefined");
       9: }

    示例2:

    一个根据bool?值设定comboBox控件的属性。CTIsFirstTime为ComboBox控件名。

       1: public bool? IsFirstTime  //允许该值为空
       2:         {
       3:             get
       4:             {
       5:                 if (CTIsFirstTime.SelectedIndex == -1)   //当comboBox什么都没选时,SelectedIndex值为-1
       6:                     return null;
       7:                 else
       8:                 {
       9:                     if (CTIsFirstTime.SelectedIndex == 0)
      10:                         return true;
      11:                     else
      12:                         return false;
      13:                 }
      14:             }
      15:             set
      16:             { 
      17:                 if (value == null)
      18:                     CTIsFirstTime.SelectedIndex = -1; 
      19:                 else
      20:                 {
      21:                     if (value == true)
      22:                         CTIsFirstTime.SelectedIndex = 0; 
      23:                     else
      24:                         CTIsFirstTime.SelectedIndex = 1; 
      25:                 }
      26:             }
      27:         }
  • 相关阅读:
    Chrome下载无后缀问题
    duilib程序HelloWorld
    go的windows下的安装包
    ASP.NET MVC异步上传图片和富文本编辑器的使用详解
    搭建go环境(windows和linux)
    构建离线Go编程指南——gotour
    判定模块加载时是否存在循环依赖
    Winform开发框架之框架演化
    为什么要写技术博
    JTREE使用例子—创建一个客户端界面
  • 原文地址:https://www.cnblogs.com/huangfr/p/2175179.html
Copyright © 2020-2023  润新知