注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Dotnet >> C# >> Dotnet正文

认识C#中使用Nullable类型

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2008-8-23 15:17:22 【 】 【加入收藏

  在C#1.x的版本中,一个值类型变量是不可以被赋予null值的,否则会产生异常。在C#2.0中,微软提供了Nullable类型,允许用它定义包含null值(即空值)的数据类型,这对处理数据库中包含可选字段以及很多方面都有很大帮助。

  定义Nullable类型

  定义一个nullable类型非常类似于定义一个非nullable类型。不同之处在于使用类型修饰符“?”。比如定义一个整型如下:

  int myInt = 1;要使一个整型变量可以存储一个null值,可以如下声明:

  int? myNullableInt = 1;这两个变量看起来似乎是一样的。但事实并非如此。实际上,Nullable类型是一个结构体,它有两个公开可读字段:HasValue和Value。HasValue是一个布尔值,当有值存储时它为真,当变量值为null时HasValue为假。当HavValue为真是时,可以取得变量的值;为假时,当尝试取得变量的值时会抛出一个异常。

  现在null是C#的一个关键字,它可以被赋给一个Nullable型变量。下面是对Nullable型变量赋值的两种有效方式。

  double? myDouble = 3.14159;double? myOtherDouble = null;可以看到,myDouble被赋给一个值,它也可以被赋以null。在第二个语句中,myOtherDouble被初始化为null——在一个非Nullable型变量中这样做会产生异常。

  使用nullable类型 一个Nullable型变量可以像一般值类型那样使用。在编译过程中Nullable型变量和非Nullable型变量会进行隐式田转换。就是说我们可以把一个标准整型赋给一个整型Nullable变量,反之亦然。参考下面示例代码:

  int? nFirst = null;

  int Second = 2;

  nFirst = Second;

  // 可以

  nFirst = 123;

  // 可以

  Second = nFirst;

  //也可以,因为此时nFirst==123 nFirst = null;

  // 可以

  Second = nFirst;

  // 抛出异常, Second 是一个非nullable型变量。

  可以看到,只要一个Nullable型变量的值不是null,它就可以和一个非Nullable型变量交换变量的值。如果包含null值,

  就会抛出异常。为避免异常发生,可以利用Nullable型变量的HasValue属性。 if (nFirst.HasValue) Second = nFirst;

  如上所示,如果nFirst 含有一个值,这个赋值语句就会运行;否则,就会跳过。

  

  • 上一篇Dotnet:

  • 下一篇Dotnet:
  • 最 新 热 门
     SOA and Web services 新手入门i学习
     浅谈Web Services版本控制
     J2EE vs .NET-建置XML WebServices
     利用.NET FileStreams将DTD插入XML文件中_Q…
     XML开发入门基础:XML和HTML的区别
     带你认识Eclipse XML编辑器
     XML开发入门基础:使用CSS显示XML
     XML开发入门基础:查看 XML 文件
     XML开发入门基础:XML 浏览器支持
     XML开发入门基础:XML 验证
    最 新 推 荐
     C#编程中给数据库添加会议数据
     提高C#编程水平的50个要点
     C#与Java相似之处的对比
     一个独立的.通用分页控件c#源码
     认识C#中使用Nullable类型
     C#高级编程:给数据库添加会议数据
     C#高级编程:会议登记 Web服务
     C#高级编程:定制日历控件
     C #中几个线程同步对象的使用方法
     认识开发多语言界面支持的方法
    相 关 文 章

    带你认识Eclipse XML编辑器
    让你认识什么是XML?
    认识什么是VB.net中介者模式
    Visual C#多线程参数传递浅析
    怎样在 Visual C# .NET 中跟踪和调试
    C #中的几个线程同步对象方法
    使用C#的BitmapData编程实例
    C#编程中给数据库添加会议数据
    提高C#编程水平的50个要点
    C#与Java相似之处的对比

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用