C#可空类型用法分析
本文实例讲述了C#可空类型用法。分享给大家供大家参考。具体分析如下:
可空类型只能用于值类型,不能用于引用类型,引用类型本身支持null值。
如果直接把null赋值给int类型,会出现一个错误"无法将 NULL 转换成'int',因为它是一种值类型"。
赋值时应该使用 int? a = null;
可空类型与一元或二元运算符一起使用是,如果一个操作数或两个操作数都是null,其结果为null。
说白了int?a=null 这句话的意思就是让值类型a可以接收null这个值
举例1
int? a = null; int? b = a * 5; //b = null int? c = a + 5; //c = null
举例2
int? a = null; int? b = null; if (a > b) { Console.WriteLine("a > b is true"); } else { Console.WriteLine("a > b is false"); } if (a == b) { Console.WriteLine("a == b is true"); } else { Console.WriteLine("a == b is false"); }
输出结果
a > b is false a == b is true
举例3
int? a = null; int b = -5; if (a >= b) { Console.WriteLine("a>=b"); } else { Console.WriteLine("a<b"); } if (a <= b) { Console.WriteLine("a<=b"); } else { Console.WriteLine("a>b"); }
输出结果(从结果可以看出不能正确识别a>b还是a<b,只要有一个值为null,a>b和a<b这两个条件都是返回false)
a<b a>b
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
c#可空类型的作用说明
可空类型用途主要是从数据库读取数据有可能为空,而不是插入使用,插入数据都要进行验证,如果要插入数据库的null,则使用DBNull.value 判断取出的数据是否为数据库中的null,如果是则赋值给可空的datetime类型的Lockdatatime 属性 tseat.Lockdatatime = reader.IsDBNull(5) ? null : (DateTime?)reader.GetDateTime(5); 判断取出的数据是否为数据库中的null,如果是则赋值给可空的int类型的Te
-
C#难点逐个击破(8):可空类型System.Nullable
null与void null值用来表示数据类型未被赋予任何值,它是一种引用类型:void表示没有类型,或者说是没有任何值.null与void的区别可以认为void是根本没有,而null是一个空箱子,里面什么都没有. null值只能赋值给引用类型,这里注意到string也是一种引用类型:引用类型在C中称为"指针",即存放变量位置的内存空间位置.将变量设为null,会显式地设置引用,且它本身不指向任何内存位置: null值赋给值类型将导致编译错误. void用于方法值的返回,其本质并不是一
-
C# 可空类型分析
例如,Nullable<Int32>,读作"可空的 Int32",可以被赋值为 -2147483648 到 2147483647 之间的任意值,也可以被赋值为 null 值.Nullable<bool> 可以被赋值为 true 或 false,或 null.在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用.例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义. 可空类型具有
-
C#中关于可空类型的小知识
1) 在与1元或二元运算符一起使用时,如果其中一个操作数为null或两个均null,则结果为null. 如: 复制代码 代码如下: int? a = null; int? b = a+3; 则b为null 2) 比较可空类型时,只要有一个操作数为null,结果就为false 如: 复制代码 代码如下: int? a = null; int? b = 8; (a>=b)将返回false 而正是因为null的可能性,所以不能随意比较一个可空类型和一个非可空类型. 3) 空接合运算符 空接合运算符&quo
-
C#基础知识 全面解析可空类型
引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚开始觉得可空类型使用过程中比较简单,觉得没有讲的必要,但是考虑到这个系列的完整性,决定还是唠叨下吧,希望对一些不熟悉的人有帮助). 一.为什么会有可空类型 如果朋友们看了我之前的分享,对于这一部分都不会陌生,因为我一般介绍C#特性经常会以这样的方式开头的, 因为每个特性都是有它出现的原因的(有一句佛
-
C#可空类型用法分析
本文实例讲述了C#可空类型用法.分享给大家供大家参考.具体分析如下: 可空类型只能用于值类型,不能用于引用类型,引用类型本身支持null值. 如果直接把null赋值给int类型,会出现一个错误"无法将 NULL 转换成'int',因为它是一种值类型". 赋值时应该使用 int? a = null; 可空类型与一元或二元运算符一起使用是,如果一个操作数或两个操作数都是null,其结果为null. 说白了int?a=null 这句话的意思就是让值类型a可以接收null这个值 举例1 int
-
python集合类型用法分析
本文实例分析了python集合类型用法.分享给大家供大家参考.具体分析如下: python的集合类型和其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似. 一.先看下python 集合类型的不重复性,这方面做一些去重处理非常的好
-
ES6新特性之Symbol类型用法分析
本文实例讲述了ES6新特性之Symbol类型用法.分享给大家供大家参考,具体如下: Symbol类型 1. 为了避免属性名的冲突,ES6新增了Symbol类型.Symbol可以产生一个独一无二的值. let s1 = Symbol('a'); let s2 = Symbol('a'); console.log(s1); //Symbol(a) console.log(typeof s1); //symbol console.log(s1 == s2); //false 2.Symbol用于属性名
-
可空类型Nullable<T>用法详解
目录 一.简介 二.语法和用法 三.类型的转换和运算 四.装箱与拆箱 五.GetType()方法 六.ToString()方法 七.System.Nullable帮助类 八.语法糖 一.简介 众所周知,值类型变量不能null,这也是为什么它们被称为值类型.但是,在实际的开发过程中,也需要值为null的一些场景.例如以下场景: 场景1:您从数据库表中检索可空的整数数据列,数据库中的null值没有办法将此值分配给C#中Int32类型: 场景2:您在UI绑定属性,但是某些值类型的字段不是必须录入的(例
-
mysql5.7 新增的json字段类型用法实例分析
本文实例讲述了mysql5.7 新增的json字段类型用法.分享给大家供大家参考,具体如下: 一.我们先创建一个表,准备点数据 CREATE TABLE `json_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `json` json DEFAULT NULL COMMENT 'json数据', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8m
-
C#类的访问修饰符用法分析
本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考.具体用法分析如下: 默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它.可以用internal访问修饰符关键字显式指定,但这不是必须的,类在定义时默认为此类型的类.但是C# 方法默认访问级别: private. 方法或者属性的修饰符的访问级别如下图: 访问修饰符 意 义 public 访问不受限制,可以类内和任何类外的代码中访问 protected 可访问域限定于类内或从该类派生的类内 internal 可访问域限定于类所在的
-
C#基础语法:可空类型详解
以下是System.Nullable<T>在FCL中的定义. [Serializable, StructLayout(LayoutKind.Sequential)] public struct Nullable<T> where T :struct { private Boolean hasValue= false; internal T value= default(T); public Nullable(T value) { this.value= value; this.ha
-
详解c# 可空类型(Nullable)
C# 单问号 ? 与 双问号 ?? ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的. int? i = 3 等同于 Nullable<int> i = new Nullable<int>(3); int i; //默认值0 int? ii; //默认值null ?? : 双问号 可用于判断一个变量在为 null 时返回一个指定的值. 接下来我们详细说明. C# 可空类
-
java中的Reference类型用法说明
本文简要总结java中的Reference类型. 最近在研读jdk并发框架,其中AQS是重点,由于我打破砂锅问到底的轻微强迫症,google了AQS作者Doug Lea的论文原文[The java.util.concurrent Synchronizer Framework],有兴趣的同学可以自行下载.其中谈到设计同步框架的核心是选择一个严格意义上的FIFO队列,作为阻塞线程队列并对其进行维护. 对此主要由两种选择,一个是MCS锁,另一个时CLH锁.因为CLH锁比MCS对取消和超时的处理更方便,
随机推荐
- 基于oracle小数点前零丢失的问题分析
- 用ASP.NET做的个性化的邮件发送系统
- destoon二次开发入门示例
- python 算法 排序实现快速排序
- iOS应用开发中运用设计模式中的组合模式的实例解析
- 下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
- 添加一个以前写的table的spliter给大家
- VBS教程:方法-OpenAsTextStream 方法
- SQLServer查询某个时间段购买过商品的所有用户
- Android Style.xml的应用详解及代码实现
- jquery实现点击查看更多内容控制段落文字展开折叠效果
- 基于javascript实现简单计算器功能
- 详解spring注解式参数校验
- Android Dialog对话框用法实例详解
- python下载图片实现方法(超简单)
- linux 触摸屏驱动编写
- 使用python爬虫获取黄金价格的核心代码
- 使用Node.js写一个代码生成器的方法步骤
- 详解C++ 多态的实现及原理
- python添加菜单图文讲解