方法定义参数中的赋值运算符(=)

时间:2011-05-18 08:44:35

标签: c# .net

见下面的方法定义。

在C#中称为什么,其中等号是在方法参数中。

是否默认方法参数初始化??

public List<Iabc> MyMethod(out List<Ixyz> faces, Type typeXYZ = null, int flag = -1)
{
    //...
    //...   
}

注意:此处IabcIxyz是任何接口。

3 个答案:

答案 0 :(得分:10)

它们被称为可选(或命名)参数。 MSDN通常会很好地解释这些事情:

Named and Optional Arguments (C# Programming Guide)

答案 1 :(得分:3)

使用命名参数时,请注意更改参数名称将破坏代码。 (使用命名参数)

另外,请记住,默认值实际存储在调用站点中,这意味着如果您稍后更改默认值,则调用该方法并在更改之前编译的代码,将仍然使用旧值。它可能在所有情况下都无关紧要,但需要注意的事项。

答案 2 :(得分:2)

这是C#4.0中的optional argument