我将RenameFolder分成两部分,我注意到visual studios 2010支持命名参数! (例如下面)。
我知道这已经存在了很多年的其他语言。我记得一位教授说他为什么喜欢命名参数,并且他在他的所有代码中使用它们。但我确信它不是在他的所有代码中。我在想。
我应该何时考虑使用命名参数vs普通样式(func(a,b,c)
)来编写函数。有些情况区域(没有时间和何时不建议)
从内部类调用方法并不是一个库
public bool RenameFolderIn(PK folderId, string newfoldername)
{
return RenameFolder(newfoldername: newfoldername, infolder: true, folderId: folderId);
}
public bool RenameFolderOut(PK folderId, string newfoldername)
{
return RenameFolder(newfoldername: newfoldername, infolder: false, folderId: folderId);
}
public bool RenameFolder(PK folderId, string newfoldername, bool infolder)
{
答案 0 :(得分:2)
通常,当存在大量默认值时我使用命名参数,我只需指定一些非默认值,或者当函数名称不建议参数顺序时。在示例RenameFolder*
函数中,我希望文件夹在新名称之前(RenameFolder
可以是短语“rename folder folder to name < / em>“;如果可能的话,首先使用名称,这不是明显的方法,因此不会打扰命名参数。
示例:假设Gamma
是Gamma分布的构造函数,它有两个参数: shape 和 scale 。在 scale 之前传递 shape 有一个统计约定,但是名称中的约定并不明显,所以我们使用命名参数。
waitTime = Gamma(shape: 2, scale: 2)