default & nullabel in .net
来源:互联网 发布:数控编程软件哪个好 编辑:程序博客网 时间:2024/06/03 20:10
首先说说值类型和引用类型(有时也说类类型)即 value type和referance type。基本类型和结构体属于值类型,定义的类属于引用类型。值类型的默认值是0,引用类型的默认值是null(如果把null看作0,就可以说所以后的默认类型都是0了)。结构体的默认值由各成员的默认值构成。使用default关键字可以获得各种类型的默认值,如default(int),default(ArrayList),default(DateTime)。另外值类型必须保存一个值,而不能像引用类型那样使用null指示其没有保存任何数据。
再说说nullable,官方的名字是System.Nullable<T>是一个泛型,简写成T?。(好久没碰模板和泛型了,简单来说就是根据一种或几种类型构造出一种类型的机制)。Nullable<T>将值类型T转换成另外一种可以等于null的类型,用以指示没有保存任何值。泛型构造了一种新的数据结构,即一个类,用以满足值类型T的不足。
另外要提一下Nullabel<T>的隐式类型转换操作符 public static implicit operator T?(T value),即它可以将T转换成T? 该操作符可以接受null作为参数构造出一个对象。这解释了int? a=null后却可以访问a.HasValued,同时a==null的结果为true。当然也可以使用int? a=1做隐式转换,构造一个有值的对象。
最后说一下struct,struct在.net属于值类型.他有一个默认的构造函数,而且不能重写默认构造函数,其他的构造函数必须全部显式初始化各个成员。另外它不能从Object类继承,它继承自Struct,自成体系。
在c++里面,他已被看成是一个类了,除了默认访问权限不同其他都相同了。在java里已经没有他的身影了。
- default & nullabel in .net
- jQuery: New Default In Rails
- default Stock Availability : in Stock
- Default Parameter Values in Python
- Default access privilege in C++
- hubble.net服务无法启动报错“System.Exception: Hasn't instance name:Default in registry”的解决方法
- How to configure default browser in registry
- switch default setting environment in VS
- C++ default constructor | Built-in types
- Register JDK as default in Linux
- zz - reprint of Default Templates in WPF
- Default namespace not working in Dotnet API.
- C++ AMP: Default accelerator in C++ AMP
- Avoid non-default constructors in fragments
- Interface in Java 8(Default/Static methods)
- private, default, protected, public in Java
- there is no default constructor available in ...
- The default ASP.NET Trust level
- 调试事件与异常的关系
- API设计中token的思路
- hdu 1198 Farm Irrigation( 并查集)
- PHP 缓存
- 如何调试服务器上的程序
- default & nullabel in .net
- 解决 Eclips 中文注释 乱码
- 分文件中的单例模式
- 黑马程序员之ASP.NET个别知识点小结十
- hdu1337-The Drunk Jailer
- 提升速度的几个环节
- 英语面试题整理
- java 程序的运行机制
- 将一个数组中的奇元素全部移到数组的前半部分,即将奇偶元素分开