【C#】Struct和Enum

版权声明:我的博客我做主! https://blog.csdn.net/lk1822791193/article/details/81415635

前言

我想说:每一个学到的知识,我们要学会去使用!当然我们用到每一个知识都需要去学习!


Struct(结构体)

  • 结构体是一个值类型的数据结构。
  • 它让一个单一变量可以存储多个数据类型的相关数据。
  • 结构体用Struct来声明
struct people
{
   public string name;
   public string sex;
   public int age;
   public void say()
   {
       Console.WriteLine("I am Eric");
   }

};  

 

特点:

  1. 结构可带有方法、字段、索引、属性、运算符方法和事件。
  2. 结构可定义构造函数,但不能定义析构函数。但是,您不能为结构定义默认的构造函数。默认的构造函数是自动定义的,且不能被改变。
  3. 结构可实现一个或多个接口。
  4. 结构成员不能指定类型(如abstract、virtual 或 protected)。
  5. 当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。
  6. 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

和类的区别

  • 数据类型:类是引用类型,结构体是数值类型
  • 继承性:类可以继承,但是结构体不行
  • 构造函数:它不会自动声明构造函数

深入

  • 存储位置:类的对象声明之后,存储在堆里边!而结构体声明之后,存储在栈里边!

注意:从名字可以看出,堆空间比较大,但是访问速度比较慢!栈空间小,访问速度比较快!

适用场合

有了这些区别,我们就可以知道它适用在什么地方了!

  • 对于一些轻量级的对象,假如声明一个含有多个颜色的数组的话, 你可以通过结构体来声明,这样的话,成本会相对较低!(它是通过属性来区分数据的)
  • 目标类型只含有一些数据,或者是以数据为主!

Enum(枚举)

它是一组命名整型常量。即一种由一组成为枚举数列表的命名常熟组成的独特类型。

枚举类型是使用 enum 关键字声明的。(值类型)

enum <enum_name>  //enum_name枚举的类型名称
{ 
    enumeration list //用逗号分割开的标识符列表
};

枚举的作用:

1.限制用户不能随意赋值,只能在定义枚举的时候列举的值总选择

2.不需要死记每一值是什么,只需要选择相应的值

实例:


   class EnumProgram
   {
      enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

      static void Main(string[] args)
      {
         int WeekdayStart = (int)Days.Sun;
         int WeekdayEnd = (int)Days.Mon;
         Console.WriteLine("Sunday: {0}", WeekdayStart);
         Console.WriteLine("Monday: {0}", WeekdayEnd);
         Console.ReadKey();
      }
   }

输出结果:

    Sunday:0
    Monday:1

 

注意:

  1. 枚举的定义,一般和类在同一个级别
  2. 定义枚举时,枚举的值不能是int类型
  3. 枚举的变量都可以强制转化为int类型
  4. 可以在枚举中的值后边加编号,但是不推荐这么做!

猜你喜欢

转载自blog.csdn.net/lk1822791193/article/details/81415635