zoukankan      html  css  js  c++  java
  • C#类型

    Object --> ValueType(class) -->结构,枚举(值类型)

    Object --> 类,接口,委托(引用类型) 

    namespace Test
    {
        /********引用类型的点**********/
        class RefPoint
        {
            public int x;
            public RefPoint(int x)
            {
                this.x = x;
            }
        }
    
        /***********值类型的点***************/
        struct ValPoint
        {
            public int x;
            public ValPoint(int x)
            {
                this.x = x;
            }
        }
    
        class RefLine
        {
            public ValPoint vp;
            public RefPoint rp;
            public RefLine()
            {
                vp = new ValPoint(1);
                rp = new RefPoint(2);
            }
        }
    
        struct ValLine
        {
            public ValPoint vp;
            public RefPoint rp;
            public ValLine(int no)
            {
                vp = new ValPoint(1);
                rp = new RefPoint(2);
            }
        }
    
    }

    (1)任何引用类型的成员变量最终都是由基本数据类型(值类型)构成的.

    (2)引用类型的值类型成员,会分配在栈上;值类型的引用类型成员会分配在堆上.

    1.值类型和引用类型的本质区别是什么?

    二者的内存模型不同,创建一个值类型和引用类型时,内存分配的方式不同.

    2.为什么说结构不支持继承?

    (1)C#不支持多继承 (2)结构是值类型,所有的继承默认继承自System.ValueType.

    3.int和System.Int32的关系.

    完全等价,int是System.Int32的别名.是结构,有自己的方法.

  • 相关阅读:
    vijos 1426
    2455 繁忙的都市
    2104 删除物品
    3235 战争
    BZOJ 2962
    COGS 265 线段覆盖
    P2184 贪婪大陆
    0729模拟赛解题报告
    BZOJ 1012
    BZOJ 2763
  • 原文地址:https://www.cnblogs.com/liliuwei/p/11270980.html
Copyright © 2011-2022 走看看