C#4.0初探: Optional and named parameters
2009-03-09 08:19:54 来源:WEB开发网可选参数不可用ref,out等修饰符。
如果全部显式指定参数名(paraName:value),参数的顺序可以任意调整。
2.内部实现
ILDASM反编译一下Test.OptionalAndNamedParams,代码段为:
.method public hidebysig instance void OptionalAndNamedParams(int32 a,
[opt] string b,
[opt] object c) cil managed
{
.param [2] = ""
.param [3] = "http://www.xianfen.net"
// ...
可选参数前声明为OptionalAttribute特性。这是C#4.0的语法糖。
Test.OptionalAndNamedParams方法等价的代码为:
public void OptionalAndNamedParams(int a,
[Optional, DefaultParameterValue("")] string b,
[Optional, DefaultParameterValue("http://www.xianfen.net")] object c)
{
Console.WriteLine("a:{0}, b:{1}, c:{2}", a, b, c);
}
如果不用DefaultParameterValueAttribute特性设置默认值,则输出为:
更多精彩
赞助商链接