用.NET语言编写的所有代码都编译为MSIL,但是只有使用MSIL才能直接执行特定的任务/操作吗?
让我们在MSIL中比C#,VB.NET,F#,j#或任何其他.NET语言更容易完成.
到目前为止我们有这个:
- 尾递归
- 通用Co/Contravariance
- 重载仅在返回类型上有所不同
- 覆盖访问修饰符
- 有一个不能从System.Object继承的类
- 过滤的异常(可以在vb.net中完成)
- 调用当前静态类类型的虚方法.
- 获取值类型的盒装版本的句柄.
- 做一个尝试/错误.
- 使用禁用名称.
- 为值类型定义自己的无参数构造函数.
- 使用
raise元素定义事件.
- CLR允许一些转换,但C#不允许转换.
- 做一个非
main()方法作为.entrypoint.
- 直接使用本机
int和本机unsigned int类型.
- 玩瞬态指针
- MethodBodyItem中的emitbyte指令
- 抛出并捕获非System.Exception类型
- 继承枚举(未验证)
- 您可以将字节数组视为(4x更小)整数数组.
- 您可以使字段/方法/属性/事件具有相同的名称(未验证).
- 您可以从自己的catch块分支回try块.
- 您可以访问famandassem访问说明符(
protected internal是fam 或 assem)
- 直接访问
<Module>类以定义全局函数或模块初始值设定项.