0

RenameFolder を 2 つに分割していたところ、Visual Studio 2010 が名前付きパラメーターをサポートしていることに気付きました! (下の例)。

私はこれが他の言語で何年も前から存在していたことを知っています。名前付きパラメーターが好きな理由と、すべてのコードでそれらを使用している教授が言ったのを覚えています。しかし、それが彼のコードのすべてにあるとは限りません。私は考えていた。

名前付きパラメーターと通常のスタイルを使用して関数を記述することをいつ検討する必要がありますか ( 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)
    {
    
4

1 に答える 1

2

通常、デフォルト値が多数あり、デフォルト以外の値をいくつか指定するだけでよい場合や、関数名がパラメーターの順序を示唆していない場合は、名前付きパラメーターを使用します。関数の例RenameFolder*では、フォルダーが新しい名前の前に来ることを期待します ( 「フォルダーフォルダーの名前RenameFolder名前に変更する」というフレーズを短くすることができます。可能であれば、名前が最初に来るように表現することは明らかな方法ではありません)。したがって、名前付きパラメーターを気にする必要はありません。

例:Gammaが Gamma 分布のコンストラクタで、shapescaleの 2 つのパラメータがあるとします。scaleの前にshapeを渡すための統計上の規則がありますが、その規則は名前からは明らかではないため、名前付きパラメーターを使用します。

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