结构体与枚举

1,结构即结构体,是值类型数据结构。
结构使用 struct 关键字声明。
结构和类相比,一般保存的数据量少,存储在栈上,读取速度比类快。
结构可带有方法、字段、索引、属性、运算符方法和事件。
结构可定义有参构造函数,但不能定义析构函数和无参构造函数。
结构和类不同,不支持继承。但结构可以实现接口。
结构成员不能指定为 abstract、virtual 或 protected。
当您使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。与类不同,结构可以不使用 New 操作符即可被实例化。
如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

结构使用场景:
            /*
             * 一般的值类型数据,如int,long,double,char等和类相比一般存储少量的数据。
             * 一般的引用类型string和类相比其实也是存储少量的数据。
             * 类中存储的数据无限制。数据量越大一般读取速度会慢。数据量越大的数据一般是引用类型,引用类型一般数据存储到堆(托管堆),而数据量越小,一般用是值类型,值类型存储在栈上。栈的数据读取速度比堆上的快一些。
             * 如果又想存储大量数据,又想读取的快?使用结构Struct。结构存储在栈上,读取速度比类快。结构是值类型。
             * 
             *结构怎么定义?使用struct关键字来声明
             *结构怎么使用?和类基本一样,但类灵活。
             */

            // 1。结构的使用
            // 结构可以使用new实例化
            Point p = new Point();
            p.X = 10;
            p.Y = 20;
            p.Show();

            // 也可不用实例化
            Point.Show2();

            // 结构可以定义有参构造函数,不能定义无参构造函数和析构函数。
            Book b = new Book(1, "C#高级编程", 88.88F, new string[] { "张三", "李四" });
            Console.WriteLine(b.Name);

2。枚举相关细节:
枚举是值类型。
枚举一般用来命名一组整型常量。
枚举类型是使用 enum 关键字声明。
枚举不支持继承或传递继承。

// 位标识枚举有两个要求:
// 1。必须设置特性[Flags]
// 2。必须设置项的值是2的次冥
 // [特性]
 [Flags]
 public enum Week
 {
     None = 0,  // 不选择时,默认是None
     Sunday = 1,  // 2的0次冥
     Monday = 2,  // 2的1次冥
     Tuesday = 4,// 2的2次冥
     Wednesday = 8,// 2的3次冥
     Thursday = 16,// 2的4次冥
     Friday = 32,// 2的5次冥
     Saturday = 64// 2的6次冥
 }

// |  按位与 ,多个项中取多个。
 Week xiuxiri = Week.Sunday | Week.Saturday;:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值