2010-03-07 6 views
0

Je partageais RenameFolder deux pièces et je remarque studios visuels 2010 de supports de paramètres nommés! (exemple ci-dessous)Quand dois-je envisager d'utiliser des paramètres nommés par rapport aux paramètres normaux?

Je sais cela existe depuis plusieurs années dans d'autres langues. Je me souviens d'un professeur en disant pourquoi il aime nommé paramètres et qu'il les utilise dans tout son code. Mais je suis sûr que ce n'est pas dans tout son code. Je me demandais.

Quand dois-je envisager d'écrire la fonction à l'aide d'un paramètre nommé vs style normal (func(a,b,c)). Certains zone cas (sans quand et quand ne suggestion)

  • appel méthodes publiques dans la même classe
  • Appel des méthodes privées dans la même classe
  • Appel de méthodes dans les bibliothèques 3ème partie externes
  • Modes d'appel dans une autre classe dans le même espace de noms
  • Méthodes d'appel d'une autre classe dans un espace de noms ou un module différent
  • Méthodes d'appel de classes internes non destinées à être un bibliothèque

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

Répondre

2

En règle générale, j'utilise des paramètres nommés quand il y a un grand nombre de valeurs par défaut et je ne doivent spécifier quelques non par défaut, ou lorsque le nom de la fonction ne suggère pas l'ordre de paramètres. Dans l'exemple RenameFolder* fonctions, je me attends le dossier à venir avant que le nouveau nom (RenameFolder peut être court pour l'expression « renommer le dossier dossier-nom », le phrasé si le nom vient d'abord, si possible, n » t l'approche évidente), et ne serait donc pas déranger avec des paramètres nommés.

Exemple: supposons Gamma est un constructeur pour la distribution Gamma, qui hase deux paramètres: forme et échelle. Il ya une convention statistique pour passer forme avant échelle, mais la convention n'est pas évidente du nom, donc nous utilisons des paramètres nommés.

waitTime = Gamma(shape: 2, scale: 2) 
Questions connexes