• 本站域名:OceanCoder.cn 若您喜欢本站,请添加至收藏夹!
  • 网站少部分资源来源自网络,如有侵犯您的权益,请联系站长删除!
  • 本站所有文章,除特殊标明外,皆为本人原创,转载请注明出处,谢谢合作!
  • 本站所下载的资源,若无特殊说明,使用统一解压密码:oceancoder.cn
  • 本站已实现布局自适应,支持手机端、pad端访问,欢迎体验
  • 本站部分资源可通过微信公众号留言获取,欢迎体验

[C#进阶笔记]_001_结构体struct和类class的区别

C# OceanCoder 2017-08-18 2814 次浏览 0个评论

结构体和类比较相似,但是结构体是值类型,类是引用类型。什么意思呢?可以参照以下代码理解

namespace Test_001
{
    class Program
    {
        static void Main(string[] args)
        {
            ocClass classA = new ocClass();
            ocClass classB = classA;
            classA.str = "A_0001";
            classB.str = "B_0002";
            ocStruct structA = new ocStruct();
            ocStruct structB = structA;
            structA.str = "C_0003";
            structB.str = "D_0004";
            Console.WriteLine("classA : {0}", classA.str);
            Console.WriteLine("classB : {0}", classB.str);
            Console.WriteLine("structA : {0}", structA.str);
            Console.WriteLine("structB : {0}", structB.str);
            Console.ReadKey();
        }
    }
    class ocClass
    {
        public string str;
    }
    struct ocStruct
    {
        public string str;
    }
}

结果:

001.png

类是引用类型,当吧classA赋值给classB时,实际是把带有指针的变量赋给了该指针所指向的对象,而指针是内存中的一个地址,这样classA和classB两个变量就包含了同一个对象的指针;

结构体是值类型,其变量包含结构体本身而不是其指针,它们有各自的内存空间,所以赋值互不影响。

已有 2814 位网友参与,快来吐槽:

发表评论