c#中判断对象为空的几种方式(字符串等)
(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#中判断对象为空的几种方式(字符串等)相关推荐
- ***PHP中判断变量为空的几种方法
总结PHP中,"NULL" 和 "空" 是2个概念. isset 主要用来判断变量是否被初始化过 empty 可以将值为 "假".&qu ...
- python中判断文件是否存在的三种方式_Python中判断文件是否存在的方法
Python中判断文件是否存在的方法 发布时间:2020-08-06 11:15:42 来源:亿速云 阅读:58 作者:小新 这篇文章主要介绍Python中判断文件是否存在的方法,文中介绍的非常详细, ...
- python中判断实例可迭代地几种方式
1. 利用 __iter__内建属性 if hasattr(obj, '__iter__') :print 'iterable' 这种方法不能检测字符串,如:hasattr('', '__iter__ ...
- java判断集合为空_Java中判断集合类为空的方法
*****需要引入Spring的核心Jar包***** 工具类: org.springframework.util.CollectionUtils 方法: public static boolean ...
- java判断一个对象是否为空_Java中判断对象是否为空的方法的详解
首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种StringU ...
- java怎么判断对象为空_java中怎么判断对象是否为空
java中判断对象是否为空的方法: 首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的:另一种是org.springframework.u ...
- java 对象为空判断_java中判断对象是否为空的方法
判断Java对象是否为null的方法: 首先,直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false.然后,在object != null ...
- java空对象怎么判断,java怎么判断对象为空
java怎么判断对象为空 发布时间:2020-06-10 09:34:15 来源:亿速云 阅读:116 作者:Leah java怎么判断对象为空?针对这个问题,今天小编总结这篇有关对象判断的文章,希望 ...
- java判断对象为空(对象为空和对象的值为空的区别)
文章目录 前言 一.object==null判断对象为空 二.判读对象的值为空 1.利用反射编写判空工具类 2.测试 总结 前言 小伙伴们大家好,最近一段时间家里有点事,没空写博客,现在事忙完啦.今天 ...
最新文章
- C/C++ 读取任意数目的整数
- 作者为何要写《简约之美》这本书?程序员们又能从中学到什么呢?
- 在main()之前,IAR都做了啥?
- 常见的浏览器兼容性问题与解决方案——CSS篇
- 每日程序C语言38-输入字符串求长度
- redis 公网ip访问_Redis很重要,怎么只允许指定IP访问?
- REST端点,可使用Apache Camel进行集成
- 实现klib_使用klib加速数据清理和预处理
- 第一百二十三期:免费在线制图神器!不上水印支持中文版,GitHub标星已破1万2
- oracle将一个表数据更新时间,Oracle批量更新,将一个表的数据批量更新另一表
- 【iOS】Swift3:context.executeFecthRequest(request, error: nil)
- java.lang.NoSuchMethodException: java.util.List.<init>() 问题解决
- Go1.18泛型使用详解(附最新gocode)
- 信息抽取 | 72篇论文梳理:涉及NER、复杂关系、小样本、文档级、多模态、开放域抽取...
- c语言如何用数组对字符串排序,怎么用qsort对二维字符数组存的若干字符串排序...
- 由古书看,古人应该知道地球是圆的
- 第三章:logback 的配置
- 出现窗口:CMD提示应用程序错误
- python之sys模块
- 线性代数笔记8:矩阵的对角化
热门文章
- cmake字符串转数组_掌握常用的数据结构之数组和字符串
- java中序列化之子类继承父类序列化
- 【java】RMI教程:入门与编译方法 远程
- 01-BIO通讯模型
- 【Elasticsearch】如何在Elasticsearch中查找相似的术语
- 【高并发】JUC中等待多线程完成的工具类CountDownLatch
- 【Java】Java 线程池 8 大拒绝策略
- Spark Structured SQL报错:Stream stream joins without equality predicate is not supported
- Spark调优 shuffle调优
- Flink eventTime案例无输出