2013-09-07 3 views
2

Я пытаюсь разработать некоторые хорошие методы программирования, и сегодня я работаю над программой, которая будет получать информацию из текстовых полей, радиокнопки и флажков. Я знаю, что я мог бы это сделать, например:Хороший программный этикет/хорошая практика программирования

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

и он будет работать. Или я мог бы также сделать это так, и он будет работать, а также:

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

Мой вопрос: что правильный способ сделать это? Короткий путь без объявления переменных или длинного объявления переменных? Как компании-разработчики программного обеспечения справляются с этим?

+0

Хорошо, спасибо, что не ответили на этот вопрос, но указав на другую тему, которая может быть полезна. Что касается вашего комментария, у меня есть вопрос, который я хотел бы сделать: не VB неявно конвертирует – PAT

+0

Никогда не замечал промежуточных переменных, я все еще делал WTH над использованием Val. –

+0

Спасибо за объяснение, я вижу вашу точку зрения. Я буду учитывать это, когда решит не использовать Strict Option Off. И не воспринимайте это лично, но я предлагаю вам для дальнейшей «помощи» не просить людей снимать вопросы, потому что для меня это звучит так же, как говорить им: «Заткнись, то, что ты просишь, глупо и не делает», я заслуживаю ответа или увиденного », и я совершенно не согласен с этим способом мышления. – PAT

ответ

2

Игнорирование ужасный VAL часть. Должны ли вы использовать промежуточные переменные? Да, если код делает его более понятным. В случае, когда вы отправили сообщение, я не верю, что это так, но это только мое мнение.

Увидев, что вы используете VB.net, не беспокойтесь о дополнительной требуемой памяти, компилятор справится с этим. В интерпретируемом языке это может быть проблемой, но код не написан для компьютеров, чтобы «понять», это написано для программистов. Всегда выбирайте для себя понятное. Вы можете сделать это непонятным, как только вы убедитесь, что это правильно ...

+0

Вот что я хотел прочитать. Почему мне пришлось пройти весь долгий путь, чтобы прочитать этот ответ? :(Я измотан сейчас. Спасибо, господа. – PAT

+0

Очевидно, что OP неправильно поняла вашу шутку (я сказал, что это может оскорбить кого-то, но я не ожидал, что это будет так быстро), теперь я надеюсь, что на этом все ясно. Мне все еще не ясно, твой комментарий в ответе Дона, не могли бы вы объяснить мне, что вы имели в виду? – varocarbas

+0

Английский юмор. Я стараюсь никогда не задумываться о том, чтобы кого-то нечаянно кого-то расстраивать, но у меня нет никаких проблем с умышленным расстраиванием кого-то. –

2

Val - функция слева над функцией Legacy. Я бы рекомендовал переключиться на типы преобразователей. Это также обеспечивает защиту значений, которые не являются конвертируемыми, как буквы. Не забудьте конвертировать типы. Поверните Option Strict On, и вы увидите.

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

Не только осталось. Это было глупо. Val («1615 198 East st.») = 1615198. Разработан по маркетингу и реализован по продажам ... –

+0

Так или иначе, вы не можете сделать один лайнер с такой защитой и поговорить с лучшей практикой - я думаю, что я распространил его на весь их код. – OneFineDay

+0

@varcarbas. Не беспокойтесь об этом. Это только намеревается оскорбить и не справиться, это проблема. :) –

Смежные вопросы