![]() |
![]() |
Трудности перехода на VB .NET
Возникает
заманчивая картина: вы запускаете
программу преобразования, немного
дорабатываете полученный
результат, и программа VB
автоматически адаптируется для VB .NET!
Поверьте, этот
путь ведет в тупик. Чтобы в полной
мере использовать преимущества VB .NET,
необходимо основательно
разобраться в объектно-ориентированном
программировании и принципах
работы .NET Framework. Вам не придется
запоминать тысячи методов,
входящих в .NET Framework, но для
сознательного чтения документации
или использования средств IntelliSense,
встроенных в IDE, нужно знать, как
работает .NET. Без хорошего понимания
этого материала вы попросту не
сможете работать в IDE с дизайнерами
форм Windows и Web.
Чтобы
представить масштаб изменений,
достаточно рассмотреть простейший
пример — форму, на которой
находится кнопка. В прежних версиях
VB весь код, связанный с кнопкой (и
выполнявшийся при ее нажатии),
находился в процедуре события Click.
Сразу
предупреждаю: при размещении
кнопки на форме VB .NET среда
программирования генерирует значительно
больший объем кода. В этой книге
мы постараемся показать, почему в
этом коде стоит разобраться —
причем так, чтобы он казался не
сложнее простого обработчика Click.
Приведенный
ниже фрагмент (в основном
автоматически сгенерированный)
размещает кнопку на форме и выводит
окно сообщения при нажатии кнопки.
Числа в скобках к программе не
относятся, они просто используются
для ссылок на строки листинга в
тексте книги.
(1) Public Class
Form1
(2) Inherits System.Windows.Forms.Form
(3) #Region "
Windows Form Designer generated code "
(4) Public Sub New()
(5) MyBase.New()
' Вызов
необходим для работы дизайнера
форм Windows
(6)
InitializeComponent()
'
Дальнейшая инициализация
выполняется ' после вызова
InitializeComponent()
End Sub
' Форма
переопределяет Dispose для очистки
списка компонентов.
(7) Protected
Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If
disposing Then
If Not (components
Is Nothing) Then
components. Dispose()
End If End If
MyBase.Dispose(disposing)
End Sub
(8) Friend
WithEvents Buttonl As System.Windows.Forms.Button
' Необходимо для работы дизайнера форм Windows
Private components
As System.ComponentModel.Container
' ВНИМАНИЕ: следующий фрагмент необходим для дизайнера форм Windows
' Для его модификации следует использовать дизайнер форм.
' Не
изменяйте его в редакторе!
(9) <System.Diagnostics.DebuggerStepThrough()> Private Sub _
InitializeComponent()
'
'Button1
'
Me.Buttonl.Location = New System.Drawing.Point(109, 224)
Me.Buttonl.Name =
"Buttonl"
Me.Button1.Size -
New System.Drawing.Size(200. 48)
Me.Button1.TabIndex
= 0,
Me. Button1. Text =
"Click me!"
'
'Form1
'
Me.AutoScaleBaseSize
= New System.Drawing.Size(5. 13)
Me.ClientSize = New
System.Drawing.Size(292. 216)
Me.Controls.AddRange(New
System.windows.Forms.Control() {Me.Button1})
Me.Name = "Forml"
Me.Text = "First
windows Application"
Me.ResumeLayout (False)
End Sub #End Region
(10) Private Sub Buttonl_C1ick(ByVal sender As System.Object._
ByVal e As System.EventArgs)
Handles Buttonl_Click
MsgBox("Welcome to Visual Basic .NET!")
End Sub
(11) End Class
Картина была бы
неполной, если бы мы не упомянули о
С#. Большая часть .NET Framework написана
на С#, поэтому некоторые полагают,
что именно С# является настоящим языком
.NET. Хотя С# чуть мощнее VB .NET, 99%
программистов никогда не будут
пользоваться его дополнительными
возможностями.
Тому, кто
никогда не программировал на C/C++,
язык С# может показаться непонятным
и более сложным, чем VB .NET. Кроме того,
VB .NET имеет ряд несомненных
преимуществ перед С#. Ниже
перечислены пять из них, которые
нам кажутся самыми важными:
![]() |
![]() |