0

我将 RenameFolder 拆分为两部分,我注意到 Visual Studios 2010 支持命名参数!(下面的例子)。

我知道这在其他语言中已经存在多年了。我记得一位教授说他为什么喜欢命名参数,并且在他的所有代码中都使用它们。但我确信它不在他的所有代码中。我想知道。

我什么时候应该考虑使用命名参数与普通样式(func(a,b,c))来编写函数。某些案例区域(没有何时和何时不建议)

  • 在同一个类中调用公共方法
  • 在同一个类中调用私有方法
  • 调用外部 3rd 方库中的方法
  • 调用同一命名空间中另一个类中的方法
  • 在不同的命名空间或模块中调用另一个类中的方法
  • 从内部类调用方法并不意味着是一个库

    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)
    {
    
4

1 回答 1

2

通常,当有大量默认值并且我只需要指定一些非默认值时,或者当函数名称不建议参数的顺序时,我会使用命名参数。在示例RenameFolder*函数中,我希望文件夹出现在新名称之前(RenameFolder可以是短语“rename folder folder to name ”的缩写;如果可能的话,将其表述为名称在前,这不是显而易见的方法),所以不会打扰命名参数。

示例:假设Gamma是 Gamma 分布的构造函数,它有两个参数:shapescale在scale之前传递shape有一个统计约定,但是从名称上看这个约定并不明显,所以我们使用命名参数。

waitTime = Gamma(shape: 2, scale: 2)
于 2010-03-07T03:14:22.003 回答