今天在游戏中要用到dynamic关键字,dynamic确实特别方便和好用
但在rider引入dynamic时报错。后面将编译版本从2.0设置到4.X。
这时候运行报了一个很诡异的错误,就是使用dynamic对象中的方法时,我忘记加参数。然后就报错了。
就是这个错误我白忙活了整个下午。。。。。
百度中搜索报错信息,提示要引入Microsoft.CSharp.dll,结果引入就报错,后面用NuGet安装Microsoft.CSharp,但一直提示命名重复,就这样瞎折腾。
后面我从简单语句,dynamic a = 1,没报错,再复杂点的dynamic 也没报错,当我再回过头发现,刚开始的问题是我调用方法,没有传递参数
总结:其实unity自带了Microsoft.CSharp,但编译版本2.0不支持C#4的dynamic,所以只要设置成4.X就ok了