C#基础学习笔记(三)—枚举的定义与使用

上一篇 / 下一篇  2017-05-23 12:43:20 / 个人分类:编程语言

类型转换

1、
隐式转换

从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换。

2、 显示转换

从类型A到类型B的转换只能在某些情况下进行,转换的规则比较复杂,应进行某种类型的处理。


枚举的定义及声明

定义枚举

enum<typeName>{<value1>,<value2>…<valueN>}

变量的声明及赋值

<typeName><varName>;

<varName>=<typeName>.<value>;

说明:

枚举类型可用值有一个默认类型int

在声明中添加类型,就可以指定其它基本类型;

enum<typeName>:<underlyingType>{<value1>,<value2>…<valueN>}

默认情况下,每个值都会根据定义的顺序(从0开始),自动赋给对应的基本类型值,意value1对应的值为0value2的值是1,以此类推。

赋值过程可以重写:使用=运算符,指定每个枚举的实际值。

enum<typeName>:<underlyingType>{<value1>=<actualVar1>,<value2>=< actualVar2>…<valueN>=< actualVarN>}

没有赋值的任何值都会自动获得一个初始值,这个初始值是比上一个已经明确声明的值大于1的序列。

例如:若value2未赋值,则value2=<actualVar1>+1;

枚举的使用举例

namespace Demo002
{
    enum name
    {
        Nacy,
        Lucy,
        Lily        
    }
    class Program
    {
        public static void Main(string[] args)
        {
            int nameInt;
            string nameString;
            name myName = name.Nacy;
            Console.WriteLine("myName is {0}",myName);
            nameInt  = (int)myName;
            nameString = Convert.ToString(myName);
            //nameString = myName.ToString();//
            Console.WriteLine("int equivalent = {0}",nameInt);
            Console.WriteLine("string equivalent = {0}",nameString);
            Console.ReadKey();
        }
    }
}

上述代码段的执行结果为:

myName is Nacy

int equivalent = 0

string equivalent = Nacy

上述代码段涉及到了类型的转换:

将枚举值转换为其它类型时,必须使用显示转换,name默认类型为int,此时如果要将myName转换为int型,也必须使用(int)强制类型转换:

myName的值转换为int类型,实际是使用枚举值的顺序值(默认值);

myName的值转换为string类型,实际使用枚举值的字符串值,除代码段中的转换方式外,还可以使用ToString()命令,等价于:

nameString = myName.ToString();


TAG:

 

评分:0

我来说两句

Open Toolbar