• 值类型——《.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;

     

  • 相关阅读:
    第二章例2-11
    第二章例2-10
    例2-11
    例2-9+2-10
    例2-7+例2-8
    例2-5+2-6
    例2-4
    例2-3
    例2-2
    例2-1
  • 原文地址:https://www.cnblogs.com/itgmhujia/p/1145284.html
Copyright © 2020-2023  润新知