zoukankan      html  css  js  c++  java
  • c# 结构的使用

       类的定义的是引用类型,重点在堆上创建,有的时候类只包含极少的数据,因为管理堆而造成的开销是很大的。这时候更好的做法就是将类型定义成结构。结构是值类型,在栈上存储,能有效的减小内存管理的开销。c#基元类型在Microsoft.NET Framework中对应的类型,string和object类型是类而不是结构。

    一、声明结构

      声明结构要以struct关键字开头,后面跟上类型名称,最后是大括号中的结构主体。

      例如下面代码,首先申请一个私有的abc三个变量,使用Variable方法设置变量值,分别使用三个Out方法返回值。

    struct Variable
    {
        private  int a, b, c;//设置为私有的变量
        public Variable(int aa,int bb,int cc)
        {
            a = aa;
            b = bb;
            c = cc;
        }
        public int aOut()
        {
            return this.a;
        }
        public int bOut()
        {
            return this.b;
        }
        public int cOut()
        {
            return this.c;
        }
    }
    namespace t

      注意:许多常用的操作符不能自动应用于自定义结构类型,例如:==和!=操作符就不能在自定义的结构体变量。但可以使用所有结构都公开的Equals()方法来比较,还可以作为自己的结构类型显示声明并实践操作符。如果一个概念的中点在于值而并不是功能,就可以使用结构来实现。

    二、结构和类的区别

      1、不能为结构声明一个默认构造器,就是指的是无参数的构造器。应为编译器始终会自动生成一个,但是在类中,只有在没有自己写构造器的时候,编译器才会自动生成默认构造器,另外编译器为结构生成的默认构造的总是将字段设置为0、false或者null,这个和类是一样的。

      如果不想使用这些默认值,可以像上面的代码一样构建一个自己构造的有参数的构造器。但是需要做到的是吧所有的变量都要初始化,因为编译器通过自己创建的构造器来初始化变量。

      2、类的实例可以在声明时初始化,但是结构是不允许的。如果初始化会在编译时提示,结构中不能有实例字段初始值设定项。

    三、结构的使用

      这个位置,假如使用默认的构造器的话是不用使用,new 后面的来初始化值的。也可以在方法中直接写。

  • 相关阅读:
    安卓第三次作业
    安卓第二次作业
    十三周作业
    2020年5月28日
    十二周上机练习
    十一周作业
    2020年5月14日
    2020年5月7日上机练习
    第九周练习
    Online Tristesse
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/7912518.html
Copyright © 2011-2022 走看看