一.string.Empty

string.Empty就相当于 "" ,一般用于字符串的初始化 ,

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

而下面不会报错: string a=string.Empty; Console.WriteLine(a);

或者用于比较: if(a=="") if(a==string.Empty) 上面两句是一样的效果。

二.String.IsNullOrEmpty 方法

String.IsNullOrEmpty(value)

指示指定的字符串是 null 还是 Empty 字符串。 能同时测试 String 是否为 null 或其值是否为 Empty 等价于  result = (value) == null || (value) == String.Empty;

参数 value :类型:System.String ,要测试的字符串。

返回值 类型:System.Boolean, 如果 value 参数为 null 或空字符串 (""),则返回 true;否则返回 false。

三.Nullable可空类型

Nullable<Int32>,读作“可空的 Int32”,可以被赋值为 -2147483648 到 2147483647 之间的任意值,也可以被赋值为 null 值。

Nullable<bool> 可以被赋值为 true 或 false,或 null。在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。

例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。

可空类型具有以下特性:  ·可空类型表示可被赋值为 null 值的值类型变量。无法创建基于引用类型的可空类型。(引用类型已支持 null 值。)。

·语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型。这两种形式可以互换。  ·

为可空类型赋值与为一般值类型赋值的方法相同,如 int? x = 10; 或 double? d = 4.108;。

·如果基础类型的值为 null,请使用 System.Nullable.GetValueOrDefault 属性返回该基础类型所赋的值或默认值,

例如 int j = x.GetValueOrDefault();  ·请使用 HasValue 和 Value 只读属性测试是否为空和检索值,例如 if(x.HasValue) j = x.Value;   如果此变量包含值,则 HasValue 属性返回 True;或者,如果此变量的值为空,则返回 False。   如果已赋值,则 Value 属性返回该值,否则将引发 System.InvalidOperationException。

可空类型变量的默认值将 HasValue 设置为 false。未定义 Value。  ·使用 ?? 运算符分配默认值,当前值为空的可空类型被赋值给非空类型时将应用该默认值,

如 int? x = null; int y = x ?? -1;。

·不允许使用嵌套的可空类型。将不编译下面一行:Nullable<Nullable<int>> n;

程序代码

class NullableExample

{

   static void Main()

    {

     int? num = null;

    if (num.HasValue == true)

     {

      System.Console.WriteLine("num = " + num.Value);

     }

     else

    {

      System.Console.WriteLine("num = Null");

     }

    // 赋值为可空类型的默认值 int y = num.GetValueOrDefault();

    // 如果num.HasValue返回false,则num.Value将会引发 InvalidOperationException异常

    try

    {

        y = num.Value;

     }

     catch (System.InvalidOperationException e)

    {

      System.Console.WriteLine(e.Message);

    }

   }

}

以上将显示输出:  num = Null   Nullable object must have a value.

基类型(基本类型)

Nullable 类型用?构造,如:int?是整型int的Nullable 类型,一个Nullable 类型的基类型必须是值类型,

如int是值类型,它的Nullable 就是int? 如: int i=0; int? j=null; 基类型不能是引用类型,如: string s="abc"; string? s=null;//错误

可空的时间类型转换为string时需要注意:

Nullable<System.DateTime> SendTime;

string timeStr=SendTime.HasValue ? SendTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : "当前变量为null";

HasValue : 获取一个值,指示当前的System.Nullable<T>对象是否有值。返回True和False.

C#中一些常用的方法使用的更多相关文章

  1. c#中的常用ToString()方法总结

    c#中的常用ToString()方法总结 对于int,double等的tostring: C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToStri ...

  2. php中的常用魔术方法总结

    以下是对php中的常用魔术方法进行了详细的总结介绍,需要的朋友可以过来参考下 常用的魔术方法有:__Tostring () __Call() __autoLoad() __ clone() __GET ...

  3. 问题:C# ToString("P");结果:c#中的常用ToString()方法总结

    c#中的常用ToString()方法总结   很多类都重写了ToString方法, 导致很多类的tostring到底执行了什么,有哪些参数,都不清楚 对于int,double等的tostring: C ...

  4. StringUtils中的常用的方法

    org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isB ...

  5. javascript中最常用的方法

    平时在工作中时常需要一些方法,下面列举几个最常用的几个方法. 1. indexOf(searchvalue,fromindex) 该方法用于查找一个字符串是否包含了另一个字符串 indexOf() 方 ...

  6. javascript中数组常用的方法和属性

    前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...

  7. javascript中数组常用的方法

    在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...

  8. JS 开发中数组常用的方法

    大家有没有想过,js数组为什么会有这么多的方法,没错,就是为了不同场景下处理数据的需要,就像设计模式一样,都是为了能更好的处理当前场景的需要. 首先怎么创建一个数组呢, // 两种方式 // 1,构造 ...

  9. Java中一些常用的方法

    1.计算程序运行时常 long start = System.currentTimeMillis(); … … … long end = System.currentTimeMillis(); Sys ...

  10. javascript中array常用属性方法

    属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2  则:   .length = 2 方法: Array.from() 方法可以将一个类数 ...

随机推荐

  1. Scrapy各部分运行机制?Xpath为None?多层Response如何编写?搞定Scrapy的坑

    前言 Scrapy那么多模块都是怎么结合的啊?明明在chrome上的xpath helper插件写好了xpath,为什么到程序就读取的是None?Scrapy可以直接写多层response么?难道必须 ...

  2. Itellij IDEA下Maven的配置

    maven基本配置 配置阿里云镜像 打开settings.xml,添加 <mirrors> <mirror> <id>alimaven</id> < ...

  3. spring cloud微服务实践二

    在上一篇,我们已经搭建了spring cloud微服务中的注册中心.但只有一个注册中心还远远不够. 接下来我们就来尝试提供服务. 注:这一个系列的开发环境版本为 java1.8, spring boo ...

  4. goroutine基础

    程序1: package main import ( "fmt" "time" ) func test () { var i int for { fmt.Pri ...

  5. go语言基础学习网址

    go指南 http://tour.studygolang.com/welcome/1

  6. Ubuntu16.04 换源(或者404 Not Found问题)

    当执行sudo apt-get update或者sudo apt-get install命令时,出现以下两个问题: “apt-get 404 Not Found Package Repository ...

  7. (八)CXF之用spring添加拦截器

    一.案例 本章案例是基于CXF之自定义拦截器基础之上改造的,目的是在服务端中用spring添加拦截器 配置web.xml <?xml version="1.0" encodi ...

  8. 【原创】大叔经验分享(89)docker启动openjdk执行jmap报错

    docker启动openjdk后,可以查看进程 # docker exec -it XXX jps 10 XXX.jar 可见启动的java进程id一直为10,然后可以执行jvm命令,比如 # doc ...

  9. Django2.0 开始一个项目

    python项目运行环境: 安装虚拟环境工具   pip install virtualenv 使用虚拟环境: 创建虚拟环境: virtualenv  <虚拟环境名称> 进去虚拟环境: S ...

  10. 内置函数----format

    说明: 1. 函数功能将一个数值进行格式化显示. 2. 如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化. >>> format(3.1 ...