(1)先了解几个与空类型相关的关键字和对象

Null : 关键字表示不引用任何对象的空引用,它是所有引用类型变量的默认值,在2.0版本之前也就只有引用变量类型可以为null,如(string a=null)但在c# 2.0版本之后,Net也引入了可以为Null的值类型,但变量在定义的时候方式有所不同,如:int ? a=null。详细看http://msdn.microsoft.com/zh-cn/library/1t3y8s4s.aspx。不在内存中开辟内存地址,可用于引用是否可用。

DBNULL:是一个唯一类,也就是说这种类型的实例只有一个,即DBNull.Value。主要用来指示数据库中的字段值为空(null)时在.Net中映射的值,另外还可以用于在 COM Interop 中区分 VT_NULL 变量(与空对象关联)和 VT_EMPTY 变量(与 DBNull.Value 实例关联)。详细看http://msdn.microsoft.com/zh-cn/library/system.dbnull%28v=vs.80%29.aspx。它应该有固定不变的内存。

String.Empty和"":这两个都表示空字符串,空字符串是一个特殊的字符串,所以它依然是一个字符串实例,也就是说它在内存中依然分配了明确的地址。

Convert.IsDBNull():返回有关指定对象是否为 DBNull 类型的指示。即是用来判断对象是否为DBNULL的。其返回值是True或Flase。主要用于和数据库操作相关的值判断。

(2)各种的使用方法和效率

对象的判断:使用Null可用于任何引用变量是否为空的判断,是最基本的对象为空判断方式,在和数据库相关的操作中使用DBNull.vaule或者Convert.IsDBNUll。

字符串判断:string在C#中也是一个引用类型,但其又具有一定的特殊性。我们在使用string时,往往会把“变量值为空的字符串对象”和“变量值为空字符的字符串对象”搞混。所以经常会因为对此理解不深引起好多问题,因为string是我们开发过程使用最频繁的类型之一,对于字符串的判断方法,通过对网上资料的整理和自己的实际操作经验现总结如下:

 string str 

  1:string.IsNullOrEmpty == str  这种方法是我最喜欢用的,它不但一次性能判断"空的字符串变量",还能判断“值为空字符串的变量”,并且还可以让代码简洁美观。判断的效率也不算低。

  2:str.Length == 0 这种方式,我不怎么喜欢用,不推荐使用。在网上看和自己的实际测试,确实能证明这种判断方式的执行效率最高,但要使用它你必须保证字符串不null,如果为null就会报出异常,

  3.str == string.Empty 或 str == "" 这两种方式,我也不推荐使用,他只能判断“值为空字符串”的字符串变量,而且效率比较低

  4.str == null 这种方式我也不怎么推荐,原因和3一样。

转载于:https://www.cnblogs.com/mymhj/archive/2012/05/15/2501531.html

c#中判断对象为空的几种方式(字符串等)相关推荐

  1. ***PHP中判断变量为空的几种方法

    总结PHP中,"NULL" 和 "空" 是2个概念. isset  主要用来判断变量是否被初始化过 empty  可以将值为 "假".&qu ...

  2. python中判断文件是否存在的三种方式_Python中判断文件是否存在的方法

    Python中判断文件是否存在的方法 发布时间:2020-08-06 11:15:42 来源:亿速云 阅读:58 作者:小新 这篇文章主要介绍Python中判断文件是否存在的方法,文中介绍的非常详细, ...

  3. python中判断实例可迭代地几种方式

    1. 利用 __iter__内建属性 if hasattr(obj, '__iter__') :print 'iterable' 这种方法不能检测字符串,如:hasattr('', '__iter__ ...

  4. java判断集合为空_Java中判断集合类为空的方法

    *****需要引入Spring的核心Jar包***** 工具类: org.springframework.util.CollectionUtils 方法: public static boolean ...

  5. java判断一个对象是否为空_Java中判断对象是否为空的方法的详解

    首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种StringU ...

  6. java怎么判断对象为空_java中怎么判断对象是否为空

    java中判断对象是否为空的方法: 首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的:另一种是org.springframework.u ...

  7. java 对象为空判断_java中判断对象是否为空的方法

    判断Java对象是否为null的方法: 首先,直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false.然后,在object != null ...

  8. java空对象怎么判断,java怎么判断对象为空

    java怎么判断对象为空 发布时间:2020-06-10 09:34:15 来源:亿速云 阅读:116 作者:Leah java怎么判断对象为空?针对这个问题,今天小编总结这篇有关对象判断的文章,希望 ...

  9. java判断对象为空(对象为空和对象的值为空的区别)

    文章目录 前言 一.object==null判断对象为空 二.判读对象的值为空 1.利用反射编写判空工具类 2.测试 总结 前言 小伙伴们大家好,最近一段时间家里有点事,没空写博客,现在事忙完啦.今天 ...

最新文章

  1. C/C++ 读取任意数目的整数
  2. 作者为何要写《简约之美》这本书?程序员们又能从中学到什么呢?
  3. 在main()之前,IAR都做了啥?
  4. 常见的浏览器兼容性问题与解决方案——CSS篇
  5. 每日程序C语言38-输入字符串求长度
  6. redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?
  7. REST端点,可使用Apache Camel进行集成
  8. 实现klib_使用klib加速数据清理和预处理
  9. 第一百二十三期:免费在线制图神器!不上水印支持中文版,GitHub标星已破1万2
  10. oracle将一个表数据更新时间,Oracle批量更新,将一个表的数据批量更新另一表
  11. 【iOS】Swift3:context.executeFecthRequest(request, error: nil)
  12. java.lang.NoSuchMethodException: java.util.List.<init>() 问题解决
  13. Go1.18泛型使用详解(附最新gocode)
  14. 信息抽取 | 72篇论文梳理:涉及NER、复杂关系、小样本、文档级、多模态、开放域抽取...
  15. c语言如何用数组对字符串排序,怎么用qsort对二维字符数组存的若干字符串排序...
  16. 由古书看,古人应该知道地球是圆的
  17. 第三章:logback 的配置
  18. 出现窗口:CMD提示应用程序错误
  19. python之sys模块
  20. 线性代数笔记8:矩阵的对角化

热门文章

  1. cmake字符串转数组_掌握常用的数据结构之数组和字符串
  2. java中序列化之子类继承父类序列化
  3. 【java】RMI教程:入门与编译方法 远程
  4. 01-BIO通讯模型
  5. 【Elasticsearch】如何在Elasticsearch中查找相似的术语
  6. 【高并发】JUC中等待多线程完成的工具类CountDownLatch
  7. 【Java】Java 线程池 8 大拒绝策略
  8. Spark Structured SQL报错:Stream stream joins without equality predicate is not supported
  9. Spark调优 shuffle调优
  10. Flink eventTime案例无输出