值类型——《.NET 2.0面向对象编程揭秘 》

所有的值类型都从一个特殊的类ValueType继承而来,而ValueType又继承自object类型
虽然所有的值类型是从ValueType类继承而来,但是所有的值类型不可再派生出子类型了
.NET Framework中值类型的分类

要注意区分C#语言中的struct与图4-3中结构类型的差别
以下C#代码定义了一个struct类型,名字叫做MyPoint,它是属于“用户自定义类型”这一分支的。

public struct MyPoint

{

    public int x;

    public int y;

}

值类型变量之间的赋值,其含义是变量之间的值复制。请看以下代码:

MyPoint p1,p2;

p1.x = 100;

p1.y = 200;

p2 = p1;

Console.WriteLine("({0},{1})", p2.x, p2.y); //将输出(100,200)

值类型拥有一个隐含的构造函数,自动初始化其成员,.NET Framework规定数字类型变量一律初始化为0。

但C#比较特殊,它要求所有值变量必须初始化后才能使用,例如,以下代码无法通过编译。

int i;

i = i + 1;

需改为:

int i=new int();    //调用值类型的默认构造函数,初始化为0

i = i + 1;

或者给值类型变量赋一个初值:

int i=10;    //调用值类型的构造函数,将初值设为10

i = i + 1;

 

转载于:https://www.cnblogs.com/itgmhujia/archive/2008/04/09/1145284.html

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页