一.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. Android MTK6580 客制化关机充电动画

    1.客制化关机充电图片 vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/xxx 找到对应分辨率替换 2.调整显示图片位置.大小 ...

  2. cv2.VideoWriter()指定写入视频帧编码格式

    帧速率 fps 和 帧大小,通过VideoCapture类的get()函数得到. 编码参数:cv2.VideoWriter_fourcc('I','4','2','0')---未压缩的YUV颜色编码, ...

  3. docker 实践四:仓库管理

    本篇我们来了解 docker 仓库的内容. 注:环境为 CentOS7,docker 19.03 仓库(Responsitory)是集中存放镜像的地方,又分公共仓库和私有仓库. 注:有时候容易把仓库与 ...

  4. Arm-Linux 移植 QT5.9 带 tslib,QT-creator配置

    平台                : Ubuntu 16.04   QT                 :5.9.8 tslib                 : 1.4arm-gcc      ...

  5. sysbench安装和测试

    1.首先安装依赖 yum install mariadb-devel yum install automake libtool –y 2.下载安装包 wget https://github.com/a ...

  6. sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  7. js 三级联动

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  8. 【原创】大叔经验分享(86)hive和mysql数据互导

    hive和mysql数据互导,首先想到的是sqoop,并且可以和调度框架(比如oozie等)配合配置定时任务,还有一种更简单的方式是通过spark-sql: CREATE OR REPLACE TEM ...

  9. Vue2.0+elementUI使用echarts插件

    1.npm安装echarts:     $ npm install echarts -S 2.html代码: <template> <div id="chartColumn ...

  10. datatables初始化用法

    var recordTable = $('#record_table').DataTable({ "fnInitComplete": function () { //表格初始化完成 ...