Zan*_*son 32 c# language-features method-call
我开始注意到,当我在C#中进行方法调用时,我调用的方法的参数名称将显示在附加冒号的intellisense列表中,然后我可以格式化该方法这样打电话:
MethodCall(parameter1:value1, parameter2:value2);
Run Code Online (Sandbox Code Playgroud)
这是一种新的语言功能吗?它让我想起了在SQL中调用存储过程的方式,并指定参数名称,如下所示:
spDoSomeStuff @param1 = 1, @param2 = 'other param'
Run Code Online (Sandbox Code Playgroud)
这是一个类似的功能吗?如果是这样,到底是什么?如果没有,它是什么以及它用于什么.
Kru*_*lur 37
这是一个新功能.请参阅此处:http://msdn.microsoft.com/en-us/library/dd264739.aspx例如, 命名参数是ObjectiveC中的标准参数.它需要一些时间来适应它们,但它们是一件好事.只有从你看,你可以告诉参数是什么意思.
Bra*_*etz 20
命名参数允许您以独立于签名的自定义顺序显式设置参数的值.方法签名由参数类型定义,即Foo(int i,bool b),它只接受int和bool类型的参数.命名参数允许您先传递b和第二个传递.
ven*_*ent 12
值得一提的是,与可选参数不同,您可以跳过某些参数并仅传递您感兴趣的参数.
public void Example(int required, string StrVal = "default", int IntVal = 0)
{
// ...
}
public void Test()
{
// This gives compiler error
// Example(1, 10);
// This works
Example(1, IntVal:10);
}
Run Code Online (Sandbox Code Playgroud)