• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net中DBNull.Value,null,String.Empty区别浅析

    首先,“null”是C#中(VB.NET为Nothing),表示某个引用对象变量“未引用”任何实体时候的状况(典型症状是如果调用这个变量的某个方法,会抛出NullException之类的异常)。

    String.Empty是一个静态的公共变量,表示某String变量不包含任何字符(等同于"")。不过从性能上说,用String.Empty比声明用一个""好一些——显然地,前者是String类的静态变量,无论如何使用只产生一个实例,后者用几次恐怕要产生几次了。

    复制代码 代码如下:

    string str="";

    //“”:表示在栈中分配了数据引用存储区域,并在堆中创建了实际数据存储区域,并将引用地址赋给了变量,在堆中分配了一个长度为空的存储空间。

    string str=string.Empty;

    //string.Empty: 表示在栈中分配了数据引用存储区域,并在堆中创建了用于实际数据存储的区域,并将引用地址赋给了变量,但在堆中创建的存储空间未分配或未存储数据。


    至于DBNull.Value,也是一个静态属性。它唯独用于数据库(例如使用DataReader读取数据的时候,又或者是DataTable中某行某列数据的比较时候)的“空数值”比较。因为在SQL中某个字段为Null只是说明该字段“没有任何值”,并不是C#中“不存在引用”。因此注意这些问题:

    1)如果用DataReader执行ExecuteScalar,如果你不确定是否会获取数据,必须采用null进行判断(因为空引用);如果你确信读取至少一条数据,但是不确定是否数据为空,可以使用DBNull.Value进行数值判断。

    2)承接1,如果某条字段确信没有任何数据,等同于没有任何字符,等同于String.Empty和"",因此完全可以用String.Empty或者""进行判断(重要结论:DbNull.Value=String.Empty="")。

    3)另外,如果对string类型的DataColumn进行赋值(譬如赋值为null),既便如此,实际上在DataTable中不可能存一个null(为了和SQL实际数值对应),会转化成String.Empty或者是""。判断方法同“重要结论”。

    简单地说:

    string str ="";

    给你一张白纸;

    string str = null;

    连白纸也没有。

    string.Empty就相当于""

    一般用于字符串的初始化

    比如:

    复制代码 代码如下:

    string a;

    Console.WriteLine(a);//这里会报错,因为没有初始化a


    而下面不会报错:
    复制代码 代码如下:

    string a=string.Empty;

    Console.WriteLine(a);


    或者用于比较:
    复制代码 代码如下:

    if(a=="")

    if(a==string.Empty)


    上面两句是一样的效果。

    string.Empty不分配存储空间

    ""分配一个长度为空的存储空间

    所以一般用string.Empty

    为了以后跨平台,还是用string.empty

    在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:

    复制代码 代码如下:

    string s = "";

    string s2 = string.Empty;

    if (s == string.Empty) {

    //
    }


    if语句成立

    判定为空字符串的几种写法,按照性能从高到低的顺序是:

    s.Length == 0 优于 s == string.Empty 优于 s == ""

    您可能感兴趣的文章:
    • asp.net String.IsNullOrEmpty 方法
    • asp.net String.Empty NULL 不同之处
    • asp.net 用户在线退出更新实现代码
    • ASP.NET MVC运行出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解决方法
    • asp.net中Null在从数据库读取的时候的一点点小技巧
    • sql server中批量插入与更新两种解决方案分享(asp.net)
    • asp.net中gridview的查询、分页、编辑更新、删除的实例代码
    • 解决asp.net mvc UpdateModel更新对象后出现null问题的方法
    上一篇:分享Visual Studio原生开发的10个调试技巧
    下一篇:asp.net中url字符串编码乱码的原因与解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp.net中DBNull.Value,null,String.Empty区别浅析 asp.net,中,DBNull.Value,null,