C#中的枚举、结构体与类

注意:  namespace  定义命名空间的关键字

                  enum定义枚举的关键字

                   class  定义类的关键字

                   stuct  定义结构体的关键字

一、枚举

枚举是一组命名整型变量,枚举类型使用enum关键字声明,c# 中的枚举是值类型(枚举包含自己的值,并且不能直接继承或间接继承)。

枚举列表中的每一个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是0.

如:  

enum Days{Sun,Mon,Tue,Wed,Thu,Fri,Sat}; 

二、结构体

扫描二维码关注公众号,回复: 2156518 查看本文章

1、在C#中,结构体是值类型的数据结构,它使得一个单一的变量可以存储在各种数据类型的相关数据。struct语句为程序定义了一个带有多个成员的新的是数据类型。

如:

                   struct Books

                   {

                            public string title;

                            public stringauthor;

                            public stringsubject;

                            public int book_id;

                     }

2、C# 结构体的特点:

         (1)、可带有方法、字段、索引、属性、运算方法和事件

         (2)、可以有构造方法,但不可以有析构方法。并且不能为结构体定义默认的构造方法。

         (3)、不能继承和被继承

         (4)、结构可以实现接口。

         (5)、因为结构不能被继承,所以结构体内的成员不能被指定为abstract、virtua或protected。

         (6)、结构体的创造可以不使用new操作符可以被实例化。在没有使用new关键字的情况下,只有在所有的字段都被初始化,字段才被赋值,对象才被使用。

三、类与结构体的比较

1、类是引用类型,它在栈中分配空间,栈中保存的只是引用或者说栈中保存的只是地址。结构体是值类型、在 栈中分配空间。

2、结构体不支持继承。可以实现一个或多个接口。

3、结构体不能“再”声明默认的构造方法。

四、结构体和类的适用场所。

1、当堆栈的空间有限,且有大量的逻辑对象时,用类。

2、对于点、矩形、颜色这样的轻量对象、如果要声明一个含有许多颜色对象的数组,则CLR需要为每个对象分配内存,在这种情况下,使用结构体的成本小。

3、在表现抽象和多级别的对象层次时.选类(结构体不支持继承)。、

4、大多数情况下,目标类型只是含有一些数组,或以数据为主。


猜你喜欢

转载自blog.csdn.net/qq_36684665/article/details/81045372