LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
Unity-C#:枚举:概念-int型string型转换
Zeiod 2022-03-13

1.枚举的概念

2.枚举类型转换

枚举与int类型的转换

枚举与string类型的转换


1.概念介绍

枚举类型使用enum关键字声明,包含了一些易读的标识符。

Q:如何声明一个枚举类型?

A:

enum <enum_name>

{

    enumeration list

};

枚举关键字  枚举类型名字

{

    成员变量

};

例子:

enum emAction

{

    Get,

    Wash,

    Eat,

    Play,

};

也可以加占位成员(个人习惯)

enum emAction

{

    None,

    Get,

    Wash,

    Eat,

    Play,

};

这里emAction就是一个枚举类型的名字,他有许多成员。

命名方式是 类型缩写+易读英文 em + Action

Q:声明一个枚举类型后,如何声明一个枚举变量?

A:

emAction mAction;

注意:

如果要public emAction mAction;声明emAction枚举类型时候也得有public。

也就是说类型权限不能比变量权限低。

声明的枚举变量命名为m+枚举类型的易读英文  m+Action

枚举变量是存放枚举类型成员的,比如

mAction=emAction.None;


如果将成员转为int输出,那么以第一个成员为基础,第二个+1,第三个+2...依次加1

第一个成员转为int默认值是0


枚举因为他的成员名字易读性被广泛应用。

比如判断:

switch(mAction)

{

    case emAction.Get:

        print("我起床");

        break; 

    case emAction.Wash:

        print("我洗漱");

        break;

case emAction.Eat:

        print("我吃饭");

        break; 

    case emAction.Play:

        print("我玩");

        break;

}

这样,每个情况可以清楚的明白含义,因为什么做什么。

不然以case  0,case 1等,别人看代码或过一段时间自己回头再看,得重头捋一遍。


2.枚举类型转换

(1)枚举和string转换

1.枚举转换为string

mAction=emAction.None;

Debug.Log(mAciton);输出为None

Debug.Log(mAction.ToString());输出也是None


2.string转换为枚举

using System;

接口Enum.Parse(EnumType,string)将string转换为枚举值,参数是枚举类型,字符串。返回Object类型

mAction=(emAction)Enum.Parse(typeof(emAction),"Wash");

Debug.Log(mAction);输出为Wash

mAction=(emAction)Enum.Parse(typeof(emAction),"Wash111");是错误的,因为没有Wash111这个成员。

(2)枚举和int转换

1. 枚举值转换为int:

mAction = emAction.Play;

int iPlay = (int)mAction;

输出为4

注意:如果在Inspector面板给变量赋值了,比如给mAction,那么Inspector的值会覆盖掉我们代码给mAction的初值。

int iConvertValue = Convert.ToInt32(mAction);

2. int转换为枚举:

mAction = (emAction)3;

Debug.Log(mAction);输出为Eat(int数对应的枚举成员)

mAction=(emAction)Enum.ToObject(typeof(emAction),1);

Debug.Log(mAction);输出为Get(int数对应的枚举成员)

推荐文章
评论(0)
分享到
转载我的主页