Csharp/C#教程:为什么C#4.0中的可选参数需要编译时常量?分享


为什么C#4.0中的可选参数需要编译时常量?

还有一种方法可以使用可选方法参数的运行时值吗?

可选参数必须是常量,因为它们是作为属性的值写出的。 因此,它们inheritance了属性值具有的所有限制。

无法直接编码运行时值。 但是,您可以使用以下模式关闭

public void MyApi(SomeType type = null) { type = type ?? new SomeType(); ... } 

可选参数被编译到程序集中,因此(就像指定为const任何东西一样)它们必须是编译时常量。

不,您不能将执行时值用作可选参数。

可选参数在编译时确定,如果调用参数太少的方法,则替换为方法。 它们通过在方法的IL中向参数添加属性来处理。

因此,它们需要在编译时完全解析(两者都用于创建,因为它们是属性,但也是在使用时)。 无法为可选方法参数使用运行时值。

上述就是C#学习教程:为什么C#4.0中的可选参数需要编译时常量?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1010834.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐