Lua和C#比较

|--------|--------------|--------------|
| | C# | Lua |
| 语言类型 | 编译型语言 静态类型语言 | 解释型语言 动态类型语言 |
| 代码执行顺序 | 无要求 | 从上到下执行 |

代码注释

|------|---------|--------------------------------------------|
| | C# | Lua |
| 单行注释 | // | -- |
| 多行注释 | /* */ | --[[ --]], --[[ ]]--,--[[ ]]-- |
| 文档注释 | /// | 无 |

代码格式

|-----------|------|-----------------------|
| | C# | Lua |
| 分隔符 | 是必须的 | 不是必须的 |
| 指定变量类型 | 是必须的 | 不能指定,并且声明后还可以被赋不同类型的值 |
| 是否有char类型 | 有 | 没有 |

字符串

|------------------------|---------|-----------------------------|
| | C# | Lua |
| 字符串的声明 | 使用双引号"" | 使用双引号""或单引号''或双方括号[[ ]] |
| 是否有char类型 | 有 | 没有 |
| 是否可以通过索引器[]访问字符串中的字符 | 可以 | 不可以 |
| 字符串的连接 | + | .. |

C#默认初始索引是从0开始,Lua默认是以1开始

函数

|------|-----------|-----------|
| | C# | Lua |
| 多返回值 | 借助ref或out | 可以支持 |
| 多参数 | params关键字 | 使用变长参数... |

运算符

相同

|-------|------------------|
| 算数运算符 | +,-,*,/ |
| 关系运算符 | <,>,<=,>=,== |
| 赋值运算符 | = |
| 移位运算符 | <<,>> |

不同

|---------------|-----------------|-------------|
| | C# | Lua |
| 复合赋值运算符 | +=,-=,*=,/=,%= | 无 |
| 关系运算符 | != | ~= |
| 逻辑运算符 | &&,||,! | and,or,not |
| 整除除法(floor除法) | 无 | //(四舍五入取整数) |
| 自增自减 | ++,-- | 无 |
| 条件运算符 | ?: | 无 |

C#中^代表异或运算符,在Lua中代表幂运算

面向对象

|-----|---------------------|-----------------------|
| | C# | Lua |
| 封装性 | 类和访问修饰符 | table local |
| 继承 | 继承基类实现单继承,继承接口实现多继承 | table 元方法__index方法 |
| 多态 | 重载和重写 | 不支持重载,通过table,元方法表现多态 |

相关推荐
福赖44 分钟前
《C#反射机制》
开发语言·c#
向上的车轮1 小时前
熟悉C#如何转TypeScript?
开发语言·typescript·c#
我是唐青枫1 小时前
C#.NET ReaderWriterLockSlim 深入解析:读写锁原理、升级锁与使用边界
开发语言·c#·.net
The Sheep 20232 小时前
C# 操作XML
xml·前端·c#
JosieBook2 小时前
【C#】C# 中的 enum、struct 和 class 对比总结
开发语言·算法·c#
Scout-leaf4 小时前
WPF新手村教程(七)—— 终章(MVVM架构初见杀)
c#·wpf
ZoeJoy85 小时前
机器视觉C# 调用相机:从 USB 摄像头到海康工业相机(WinForms & WPF)
数码相机·c#·wpf
Daydreamer .5 小时前
VisionMaster使用OpenCV发现的问题
opencv·c#·visionmaster
唐青枫16 小时前
C#.NET ReaderWriterLockSlim 深入解析:读写锁原理、升级锁与使用边界
c#·.net