Вопрос

Вопрос предназначен для программистов Lazy VB. Пожалуйста.

В VB я могу сделать, и я не получу ошибок.

Пример 1.

Dim x As String = 5
Dim y As Integer = "5"
Dim b As Boolean = "True"

Пример 2.

Dim a As EnumType = 4
Dim v As Integer = EnumType.EnumValue

Пример 3.

Private Sub ButtonClick(sender As Object, e As EventArgs)
    Dim btn As Button = sender        
End Sub

Пример 4.

Private Sub ButtonClick(sender As Button, e As EventArgs)
    Dim data As Contact = sender.Tag
End Sub

Если я, безусловно, знаю ожидаемый тип выполнения, это «запрещено», чтобы полагаться на встроенный кастинг языка VB? Когда я могу положиться?

Это было полезно?

Решение

Комментарий к Markj Перейти к ответу на OP

Не стесняйтесь полагаться на него все, что вы хотите, просто убедитесь, что вы знаете правила для того, что делает неявный отказ. Тем не менее, пример № 4 выглядит очень легко сломать в будущем, я бы намного счастливее, если бы был хотя бы нуль-проверка раньше.

Другие советы

Это, безусловно, не «запрещено» использовать Option Strict Off Но почти все настоятельно советуют использовать Option Strict On.

Причины объясняются в других вопросах, например это.

Если вы используете Visual Basic 2008, другой вариант выполняет отливку CaventiTalyey (например, опция Strict On) и полагаться на опцию, неявную, чтобы вам не нужно писать тип дважды.

Dim x = 5.ToString()  
Dim data = DirectCast(sender.Tag, Contact)

Ирония «ленивых» практик, как такова, что они часто заканчиваются вам больше времени в долгосрочной перспективе. Можете ли вы быть абсолютно уверены, что ваши входы всегда будут в формате, которые могут автоматически быть отбрасываться на предполагаемый тип, при любых обстоятельствах и во всех помещениях?

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top