2009-03-22 15 views
1

jusqu'à un certain code Tidying qui a ce que je considère être une structure de saut de ligne confusion:Est-il approprié de décomposer une longue ligne en deux opérations?

return 
     CommonContext.HttpWebService.DownloadXml(configuration.MethodUrl(APIMethods.CharacterSheet), 
                 postData); 

Si elle était sur une ligne, il serait évidemment d'être à temps pour être lisible. En l'état actuel des choses, je ne vois pas d'un coup d'œil rapide comment le "retour" et le "postData" sont liés à la longue ligne. CommonContext et APIMethods sont des classes statiques, la configuration est une variable locale.

En pensant à cela, je serais probablement écrire la même chose dans deux lignes comme suit:

string methodUrl = configuration.MethodUrl(APIMethods.CharacterSheet); 
return CommonContext.HttpWebService.DownloadXml(methodUrl, postData); 

Est-ce un moyen efficace de spiting le code ou est-il une meilleure façon? Dans ce cas, j'utilise C# 2.0.

Répondre

11

Oui. C'est une bonne chose d'habitude. Il rend le code plus auto-documenté (avec un bon nom de variable) et facilite également le débogage (permet de placer un point d'arrêt sur la première ligne, et lorsqu'une exception est lancée depuis la première ligne, vous pouvez le distinguer immédiatement situation de ligne).

+0

Merci, je suis sur la bonne voie. –

1

Lisibilité avant tout. Aucun programme n'a jamais échoué à ses utilisateurs pour être trop lent en raison d'un trop grand nombre de lignes.

7

Oui, c'est vraiment un moyen efficace de refactoriser le code. Il peut également être utile si vous souhaitez utiliser le débogueur ou un consignateur pour examiner la valeur de methodUrl avant de passer à DownloadXml.

Un autre avantage supplémentaire est que vous attribuez la valeur au nom. Cela peut être d'une grande aide en expliquant son signifiant en même temps. Cela peut être particulièrement important s'il y a beaucoup de paramètres - cela aide vraiment de pouvoir regarder rapidement une liste d'arguments sur le site d'appel et une liste de paramètres à la déclaration de la méthode et de deviner ce qui se passe juste en fonction des noms .

+0

Belle expression: "Donner un nom à un nom". C'est probablement la caractéristique d'Objective-C. –