关于枚举和结构总结的一个例子

本文通过一个实际例子,详细总结了C#中枚举(Enum)和结构(Struct)的使用,旨在帮助读者更好地理解和应用这两种数据类型。
摘要由CSDN通过智能技术生成

这是自己练习的例子,把例子总结下来,供练习之用。还是看例子吧。

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

namespace ConsoleApp1
{
    enum orientation
    {
        east,
        south,
        west,
        north
    }

    //2.关于枚举的类型。默认是int,但可以重新定义为

    enum tiangan : byte//可以为byte、short、ushort、uint、long和ulong等数值类型
    {
        jia = 5,
        yi,
        bing,
        ding
    }

    //3.默认情况下每个值从0开始。但可以重新赋值,后续值为前值+1
    enum dizhi
    {
        zi = 11,
        chou = 12,
        yin,//=13,值自动加1
        mao,//=14
        wu,//=15
        ji,//=16
        geng = 11,
        xin,//=12
        ren = chou,//=2
        gui//=13

    }

    //4.枚举不可以有重复的名称,但是可以有重复的值。
    enum color
    {
        red = 0,
        orange = 0,
        yellow,
        green,
        black,
        blue,
        purple
    }

    struct route
    {
        public orientation direction;//定义枚举类型
        public double distance;

    }
    class Program
    {
        //1.关于enum的定义。
        //是程序员自己定义的值类型。
        //枚举明确指定对变量有效的值,
        //枚举提供了一种有效的方式来定义可能分配给变量的一组已命名整数常量。
        
        //5.专门处理枚举的是Enum类(静态类)。GetName和GetNames是两个重要方法
        //关于位标志以后专门学习
        static void Main(string[] args)
        {
            orientation ori = orientation.south;
            Console.WriteLine($"My direction is {ori}");
            //使用强制转换获得枚举值
            int jiazi = (int)dizhi.yin;
            Console.WriteLine($"jiazi的数值是{jiazi}");
            Console.WriteLine($"tiangan的第二个是:{Enum.GetName(typeof(tiangan),2)}");//第一个参数是enum对象,第二个是枚举的值
            foreach(var i in Enum.GetNames(typeof(tiangan)))//获得所有枚举
                Console.WriteLine(i);

            //
            route myRoute;
            int myDirection = -1;
            double myDistance;
            Console.WriteLine("1) North\n2) South\n3) East\n4) West");
            do
            {
                Console.WriteLine("Select a direction:");
                myDirection = Convert.ToInt32(Console.ReadLine());
                
            }
            while((myDirection<1)||(
            myDirection>4));

            //判断方向和路程
            Console.WriteLine("Input a distance:");
            myDistance = Convert.ToDouble(Console.ReadLine());//调用Convert类确保输入正确
            myRoute.direction = (orientation)myDirection;//强制类型转换,把整数转化为枚举
            myRoute.distance = myDistance;
            Console.WriteLine($"myRoute specifies a direction of {myRoute.direction} and a distance of {myRoute.distance}");
        }
    }
}

输出是:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值