2013-09-07 8 views
2

J'essaie de développer de bonnes pratiques de programmation et aujourd'hui je travaille sur un programme qui va prendre des informations à partir de zones de texte, boutons radio et cases à cocher. Je sais que je pourrais le faire comme ceci, par exemple:Bonnes pratiques de programmation/bonnes pratiques de programmation

TextBoxResult.Text = Val(TextBoxNumbA.Text) + Val(TextBoxNumbB.Text) 

et cela fonctionnera. Ou je pourrais aussi le faire comme cela et il fonctionnera aussi bien:

Dim result, numberA, numberB as Integer 
numberA = Val(TextBoxNumbA.Text) 
numberB = Val(TextBoxNumbB.Text) 
result = numberA + numberB 
TextBoxResult.Text = result 

Ma question est: qui est la bonne façon de le faire? Le chemin court sans déclarer les variables ou le long chemin déclarant les variables? Comment les sociétés de logiciels gèrent-elles cela?

+0

Ok, merci de ne pas avoir répondu à la question mais d'avoir mentionné un autre sujet qui pourrait vous être utile. En ce qui concerne votre commentaire, j'ai une question que j'aimerais faire: VB ne convertit pas implicitement – PAT

+0

Je n'ai jamais remarqué les variables intermédiaires, je faisais toujours un WTH sur l'utilisation de Val. –

+0

Merci pour l'explication, je vois votre point. Je tiendrai compte de cela chaque fois que je déciderai de ne pas utiliser l'option Strict Off. Et ne le prenez pas personnellement mais je vous suggère de continuer à "aider" à ne pas demander aux gens de prendre des questions, car pour moi, cela revient à leur dire: "Tais-toi, ce que vous demandez est stupide et ne fait rien" Je mérite d'être répondu ou vu "et je suis complètement en désaccord avec cette façon de penser. – PAT

Répondre

2

Ignorant la partie val horrible. Devriez-vous utiliser des variables intermédiaires? Oui si cela rend le code plus compréhensible. Dans le cas où vous avez posté je ne le crois pas, mais c'est seulement mon opinion.

Étant donné que vous utilisez VB.net, ne vous inquiétez pas de la quantité de mémoire supplémentaire requise, le compilateur s'occupera de cela. Dans un langage interprété, cela pourrait être un problème, mais le code n'est pas écrit pour que les ordinateurs «comprennent», c'est écrit pour les programmeurs. Toujours aller pour d'abord comprendre. Vous pouvez le rendre incompréhensible une fois que vous êtes sûr qu'il est correct ...

+0

Voilà la réponse que je voulais lire. Pourquoi ai-je dû parcourir toute la longue route pour lire cette réponse? :(Je suis épuisé maintenant Merci, messieurs – PAT

+0

Apparemment, l'OP a mal compris votre blague (j'ai dit que cela pourrait offenser quelqu'un mais je ne m'attendais pas à obtenir des résultats si rapides), maintenant j'espère que tout est clair sur ce – varocarbas

+0

Je ne m'efforce jamais de déranger involontairement quelqu'un, mais je n'ai aucun problème à bouleverser quelqu'un intentionnellement. –

2

Val est une fonction héritée restante. Je recommanderais de passer à des convertisseurs spécifiques. Cela fournit également une protection pour les valeurs qui ne sont pas convertibles comme des lettres. N'oubliez pas de convertir les types. Tournez Option Strict On et vous verrez.

Integer.TryParse

Dim result As integer = 0 
Dim numberA, numberB as Integer 
If Integer.TryParse(TextBoxNumbA.Text, numberA) Then 
    If Integer.TryParse(TextBoxNumbB.Text, numberB) Then 
    result = numberA + numberB 
    End If 
End If 
TextBoxResult.Text = result.ToString("n2") 
+1

Non seulement il reste. C'était stupide. Val ("1615 198 East st.") = 1615198. Conçu par le marketing et mis en œuvre par les ventes ... –

+0

D'une manière que j'ai fait, vous ne pouvez pas faire un seul revêtement avec ce genre de protection et de parler de la meilleure pratique - Je pense que je étendu dans tout leur code. – OneFineDay

+0

@varcarbas. Ne t'en fais pas pour ça. Il a seulement l'intention d'offenser et de ne pas y parvenir, c'est un problème. :) –