一.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. [NOIP提高组2018]货币系统

    [TOC] 题目名称:货币系统 来源:2018年NOIP提高组 链接 博客链接 CSDN 洛谷博客 洛谷题解 题目链接 LibreOJ(2951) 洛谷(P5020) 大视野在线评测(1425) 题目 ...

  2. python并发编程之多线程(实践篇)

    一.threading模块介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading# 1.开启线程的两种 ...

  3. 1267: 展开字符串(Java)

    WUSTOJ 1267: 展开字符串 参考 jamesMusk的博客--Java 判断字符是大写小写或者数字 Description   给三个参数a1,a2,a3和一个字符串,请按以下要求展开该字符 ...

  4. pandas 索引笔记

    import pandas as pd import numpy as np s = pd.Series(np.random.rand(5), index=list('abcde')) # 创建序列, ...

  5. 『Python基础』第2节: Python简介及入门

    一. Python介绍 Python是一门高级计算机程序设计语言,1989年,荷兰的Guido von Rossum创造了它.Guido是是一个牛人,1982年,他从阿姆斯特丹大学获得了数学和计算机硕 ...

  6. BZOJ4566 HAOI2016找相同字符(后缀自动机)

    对第一个串建SAM,第二个串在上面跑,记录当前前缀匹配的最长后缀长度l,每次考虑当前前缀的贡献,对于当前所在节点显然是|right|*(l-len[fa]),而对于其parent树上所有祖先的贡献显然 ...

  7. Interlocked

    Interlocked MSDN 描述:为多个线程共享的变量提供原子操作.主要函数如下: Interlocked.Increment 原子操作,递增指定变量的值并存储结果.Interlocked.De ...

  8. 22-MySQL DBA笔记-其他产品的选择

    第22章 其他产品的选择 本章将为读者介绍其他的数据库产品,主要是NoSQL产品的选择.读者在熟悉MySQL之外,也应该了解其他的数据库产品.本章的目的是给读者一个引导,如何选择一些NoSQL产品,而 ...

  9. (三)使用Intent在活动中穿梭:显式和隐式Intent

    一.显式Intent @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan ...

  10. (六)在线文档编辑器的使用和数据字典(ueditor编辑器/my97datepicker日期控件)

    使用ueditor编辑器注意: 1. 要把ueditor的jar包添加到WEB-INF/lib里. 2. 在做图片上传等功能时,必须重写struts的过滤器,否则图片流会被拦截程序无法得到图片. 3. ...