枚举,结构体区别

枚举enun
 
    enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常数组成的独特类型。每种枚举类型都有基础类型,该类型可以是除 char 以外的任何整型。枚举元素的默认基础类型为 int。默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增
声明
[访问修饰符] enum 枚举名 {
    成员1,
    成员2,    
}
 
如何使用
    枚举名 【名称自定义】=枚举名.[内容]
 
枚举的作用
1、限制用户不能随意赋值,只能在定义枚举时列举的值中选择
2、不需要死记每一个值是什么,只需要选择相应的值( 哪里不会点哪里)
例子:
 
//定义枚举  
public enum Dir
{
        east,
        south,
        west,
        north
}
 
//使用枚举
Dir d=Dir.east;
//将字符串east 转换成枚举
//(自己定义的枚举类型)(Enum.Parse(typeof(自己定义的枚举类型),"待转换的字符串"));
Dir d1=(Dir)(Enum.Parse(typeof(Dir),"east"));
//将数字1转换成枚举
Dir d12=(Dir)(Enum.Parse(typeof(Dir),"1"));   
//将枚举转换为数字
int i=Convert.ToInt32(Dir.west);
 
 
注意:

1.枚举的定义,一般和定义类在同一个级别。这样,在同一个命名空间下的所有类都可以使用这个枚举

2.定义枚举时,枚举的值不能用int类型

3.枚举的变量都可以强制转换成int,因为枚举的值在定义时是有一个默认编号的,编号从0开始

4.可以在枚举中的值后面加编号 但不推荐这么做,原因是第3点

·

public enum Dir
{
        east=1,
        south=2,
        west=3,
        north=4
}
————

结构体struct
同时定义多个不同类型的变量
 
定义方法
[访问修饰符] struct  结构名
{
     定义结构成员//可以包含变量、方法
}
 例1
//定义一个叫person的类
public static struct person
{
    public string name;  //结构成员
    public int age; 
    
   //结构体中定义方法
    public void SayHello()
    {    
        Console.WriteLine("Hello");
    }
}
 
//使用结构体
person ps;
//为结构体中的成员赋值
ps.name="张尚";
ps.age=20;
//调用结构体中的方法
 ps.SayHello();
 
注意:结构体和枚举要定义在类的前面
________________________________________________
类Class
定义类
[访问修饰符] class 类名
{
    成员1;
    成员2;
..............................
}
类中可以包含变量的定义和方法

你可能感兴趣的:(c++)