XLua Lua访问C#中的方法(四)访问枚举

XLua Lua访问C#中的方法(四)访问枚举

https://blog.csdn.net/xmx5166/article/details/90712888

在Lua中有以下五种方法可以访问到枚举变量:

当作普通的静态属性访问
使用__CastFrom函数,从枚举值对应的数值做类型转换
使用__CastFrom函数,从枚举值对应的字符串做类型转换
直接传入枚举值对应的数值
直接传入枚举值对应的字符串

    1
    2
    3
    4
    5

官方文档上只提到了前三种方法,并且方法2和方法3需要生成代码才能使用,不过经过实验发现,不生成代码时上述五种方法都能够使用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;


[LuaCallCSharp]
public enum Language
{
    PHP,
    Charp,
    Python,
    C,
    Java
}

[LuaCallCSharp]
public class ChooseLanguage
{
    public void GetLanguage(Language lang)
    {
        switch (lang)
        {
            case Language.PHP:
                Debug.Log("选择了PHP语言");
                break;
            case Language.Charp:
                Debug.Log("选择了Charp语言");
                break;
            case Language.Python:
                Debug.Log("选择了Python语言");
                break;
            case Language.C:
                Debug.Log("选择了C语言");
                break;
            case Language.Java:
                Debug.Log("Java");
                break;
        }
    }
}

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42

print('启动了Lua')

function init()
    print("执行了Lua的全局方法init")--无参数的方法
    CreatUnityObj()
end

function CreatUnityObj()
    local Language=CS.Language
    local choose=CS.ChooseLanguage()
    
    --共有五中方法访问C#枚举值
    --1、当作普通的静态属性访问
    --2、使用__CastFrom函数,从枚举值对应的数值做类型转换
    --3、使用__CastFrom函数,从枚举值对应的字符串做类型转换
    --4、直接传入枚举值对应的数值
    --5、直接传入枚举值对应的字符串
    
    choose:GetLanguage(Language.PHP)
    choose:GetLanguage(Language.__CastFrom(1))--索引从0开始
    choose:GetLanguage(Language.__CastFrom('Python'))
    choose:GetLanguage(3)
    choose:GetLanguage('Java')
end

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24


————————————————
版权声明:本文为CSDN博主「yang854426171」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yang854426171/article/details/89297966

发布了64 篇原创文章 · 获赞 36 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/kuangben2000/article/details/104082652
今日推荐