c# | 枚举和结构体

枚举类型本质上是人为限定了取值范围的几个整数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();
            person.Level = Level.Employee;

            Person boss = new Person();
            boss.Level = Level.Boss;

            Console.WriteLine(boss.Level > person.Level);
            Console.WriteLine((int)Level.Employee);
            Console.WriteLine((int)Level.Manager);
            Console.WriteLine((int)Level.Boss);
            Console.WriteLine((int)Level.BigBoss);
        }
    }

    enum Level  //默认值是0,1,2,3...(强制类型转换的话),但可以赋值
    {
        Employee=100,
        Manager=200,
        Boss=300,
        BigBoss,
    }

    class Person
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public Level Level { get; set; }

    }
}

结果
在这里插入图片描述
比特位用法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();
            person.Name = "Tim";
            person.Skill = Skill.Drive | Skill.Cook | Skill.Teach;
            Console.WriteLine(person.Skill);
            Console.WriteLine((person.Skill & Skill.Cook)==Skill.Cook);
        }
    }


    enum Skill
    {
        Drive=1,
        Cook=2,
        Program=4,
        Teach=8,
    }

    class Person
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public Level Level { get; set; }
        public Skill Skill { get; set; }

    }
}

结果
在这里插入图片描述

结构体

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            Student student = new Student() { ID = 101, Name = "梁" };
            object obj = student;//装箱
            Student student2 = (Student)obj;//拆箱
            Console.WriteLine($"{student2.ID}Name:{student2.Name}");
        }
    }

    struct Student
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
}

在这里插入图片描述

结语

课程到这里就结束了,我不是接触编程相关专业的学生,但通过学习c#,受益良多,很多之前没有明白的东西现在也通透了许多,如今编程已经用到了我的生活当中(虽然是以娱乐为主),在将来就业方面也不知道用不用得上,但现在我并不后悔学习c#,不说知识学到了多少,就解决问题的途径和方法,我也从刘铁猛老师的视频课程中收益良多,十分感谢老师。
课程内容已经结束,但学习从未停止,我也将写点例子巩固下c#知识。受疫情影响,我也不能拿到本专业的书籍(在学校),当下最轻松的学习就只有编程了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值