C#CLR 编译问题

C#CLR 编译问题,第1张

概述我昨天发布了一个 this问题,询问有关将.NET应用程序部署到.NET 3.5目标服务器的C#4客户端,以及客户端上编译某些内容或C#4的服务器上的C#3天气. 那个场景是可选参数.我知道自.NET 1.1以来一直支持可选参数.为什么C#3编译的IL代码无法使用可选参数调用C#4编译的IL代码? C#3是否只是忽略了可选属性? 你是对的…… IL只是用OptionalAttributes装饰,但 我昨天发布了一个 this问题,询问有关将.NET应用程序部署到.NET 3.5目标服务器的C#4客户端,以及客户端上编译某些内容或C#4的服务器上的C#3天气. @H_502_7@

@H_502_7@那个场景是可选参数.我知道自.NET 1.1以来一直支持可选参数.为什么C#3编译的IL代码无法使用可选参数调用C#4编译的IL代码?

@H_502_7@C#3是否只是忽略了可选属性?

解决方法 你是对的…… IL只是用OptionalAttributes装饰,但它是调用编译器决定做什么… @H_502_7@

@H_502_7@来自里希特:

@H_502_7@

@H_502_7@Now,when a compiler sees that you have code calling a method that is missing some arguments,the compiler can ensure that you’ve omitted optional argumements,grab their default values out of Metadata,and embed them…

@H_502_7@所以这是CALliNG编译器决定做什么与选项,而不是被称为c#4.0 IL …

@H_502_7@更多关于边缘情况以及如何决定值的调用方法可以从lippert,@ http://blogs.msdn.com/b/ericlippert/archive/2011/05/16/optional-argument-corner-cases-part-three.aspx中找到

总结

以上是内存溢出为你收集整理的C#CLR /编译问题全部内容,希望文章能够帮你解决C#CLR /编译问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1160008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存