作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
使用 Optional
和 DefaultParameterValue
属性与不使用它们有什么区别吗?
public void Test1([Optional, DefaultParameterValue("param1")] string p1, [Optional, DefaultParameterValue("param2")] string p2)
{
}
public void Test2(string p1= "param1", string p2= "param2")
{
}
两者都有效:
Test1(p2: "aaa");
Test2(p2: "aaa");
最佳答案
它们的编译方式相同,并且编译器都可以正常工作。唯一的区别是缺少 using System.Runtime.InteropServices;
,并且更易于阅读代码。
作为引用,IL 是:
.method public hidebysig instance void TheName([opt] string p1,
[opt] string p2) cil managed
{
.param [1] = string('param1')
.param [2] = string('param2')
.maxstack 8
L_0000: ret
}
TheName
是唯一发生变化的地方。
关于c# - 是否使用 "Optional, DefaultParameterValue"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171095/
使用 Optional 和 DefaultParameterValue 属性与不使用它们有什么区别吗? public void Test1([Optional, DefaultParameterVal
我们正在编写一个 .NET 3.5 应用程序,它使用各种对象的 Xml 序列化。 我们基本上是从一个对象创建一个 xml 文档,我希望能够使用这个属性 (DefaultParameterValue),
我是一名优秀的程序员,十分优秀!