Modul, Struktur, dan Kelas

Hanya ada tiga cara untuk mengatur VB.NET aplikasi.

  • Modul
  • Struktur
  • Kelas

Tetapi sebagian besar artikel teknis mengasumsikan bahwa Anda sudah tahu semua tentang mereka. Jika Anda salah satu dari sekian banyak yang masih memiliki beberapa pertanyaan, Anda bisa membaca melewati bagian-bagian yang membingungkan dan mencoba untuk mengetahuinya. Dan jika Anda memiliki banyak waktu, Anda dapat mulai mencari Microsoft dokumentasi:

  • "Modul adalah file portabel yang dapat dieksekusi, seperti type.dll atau application.exe, yang terdiri dari satu atau lebih kelas dan antarmuka."
  • "Pernyataan Kelas mendefinisikan tipe data baru."
  • "Pernyataan Struktur mendefinisikan tipe nilai komposit yang dapat Anda sesuaikan."

Baiklah kalau begitu. Ada pertanyaan?

Agar lebih adil bagi Microsoft, mereka memiliki halaman dan halaman (dan lebih banyak halaman) informasi tentang semua ini yang dapat Anda lalui. Dan mereka harus setepat mungkin karena mereka menetapkan standar. Dengan kata lain, dokumentasi Microsoft terkadang terbaca seperti buku hukum adalah sebuah buku hukum.

instagram viewer

Tetapi jika Anda baru belajar .NET, ini bisa sangat membingungkan! Anda harus mulai dari suatu tempat. Memahami tiga cara mendasar untuk menulis kode di VB.NET adalah tempat yang baik untuk memulai.

Kamu bisa menulis VB.NET kode menggunakan salah satu dari tiga bentuk ini. Dengan kata lain, Anda dapat membuat a Aplikasi konsol di VB.NET Express dan tulis:

Modul Modul1
Sub Utama ()
MsgBox ("Ini Modul!")
End Sub
Modul Akhir
Kelas Kelas1
Sub Utama ()
MsgBox ("Ini Kelas")
End Sub
Kelas Akhir
Struktur Struktur1
Redup myString As String
Sub Utama ()
MsgBox ("Ini Struktur")
End Sub
Struktur Akhir

Ini tidak berhasil apa saja akal sebagai program, tentu saja. Intinya adalah bahwa Anda tidak mendapatkan kesalahan sintaks sehingga "legal" Kode VB.NET.

Tiga bentuk ini adalah satu-satunya cara untuk mengkode akar ratu lebah dari semua .NET: objek. Satu-satunya elemen yang mengganggu simetri dari tiga bentuk adalah pernyataan: Redup myString As String. Itu ada hubungannya dengan Struktur menjadi "tipe data komposit" seperti yang dinyatakan oleh Microsoft dalam definisi mereka.

Satu hal yang perlu diperhatikan adalah bahwa ketiga blok memiliki Sub Utama () di dalamnya. Salah satu kepala sekolah OOP paling mendasar biasanya disebut enkapsulasi. Ini adalah efek "kotak hitam". Dengan kata lain, Anda harus dapat memperlakukan setiap objek secara independen dan itu termasuk menggunakan subrutin yang bernama identik jika Anda mau.

Kelas

Kelas adalah tempat yang 'tepat' untuk memulai karena, sebagai Microsoft Catatan, "Kelas adalah blok pembangun dasar dari pemrograman berorientasi objek (OOP)." Bahkan, beberapa penulis memperlakukan modul dan struktur hanya sebagai jenis kelas khusus. Kelas lebih berorientasi objek daripada modul karena itu mungkin memberi contoh (buat salinan) kelas tetapi bukan modul.

Dengan kata lain, Anda dapat kode ...

Formulir Kelas Publik1
Sub Formulir Pribadi1_Load (_
Pengirim ByVal Sebagai Sistem. Objek, _
ByVal e As System. EventArgs) _
Menangani MyBase. Beban
Dim myNewClass As Class1 = New Class1
myNewClass. ClassSub ()
End Sub
Kelas Akhir

(Instansiasi kelas ditekankan.)

Tidak masalah apakah kelas itu sendiri, dalam hal ini, ...

Kelas Publik Kelas1
SubkelasSub ()
MsgBox ("Ini kelas")
End Sub
Kelas Akhir

... dalam file dengan sendirinya atau merupakan bagian dari file yang sama dengan Formulir1 kode. Program berjalan dengan cara yang persis sama. (Perhatikan itu Formulir1 juga kelas.)

Anda juga dapat menulis kode kelas yang berperilaku seperti modul, yaitu tanpa membuat instance. Ini disebut a Bersama kelas. Artikel "Statis" (yaitu, "Dibagikan") versus Jenis Dinamis di VB.NET menjelaskan hal ini secara lebih rinci.

Fakta lain tentang kelas juga harus diingat. Anggota (properti dan metode) kelas hanya ada saat instance kelas ada. Nama untuk ini adalah pelingkupan. Itu adalah cakupan contoh kelas terbatas. Kode di atas dapat diubah untuk menggambarkan hal ini dengan cara ini:

Formulir Kelas Publik1
Sub Formulir Pribadi1_Load (_
Pengirim ByVal Sebagai Sistem. Objek, _
ByVal e As System. EventArgs) _
Menangani MyBase. Beban
Dim myNewClass As Class1 = New Class1
myNewClass. ClassSub ()
myNewClass = Tidak ada
myNewClass. ClassSub ()
End Sub
Kelas Akhir

Kapan kedua myNewClass. ClassSub () pernyataan dieksekusi, a NullReferenceException kesalahan dilempar karena ClassSub anggota tidak ada.

Modul

Dalam VB 6, itu umum untuk melihat program di mana sebagian besar kode berada dalam modul (A .BAS, mengajukan bukan, misalnya, dalam a Bentuk file seperti Form1.frm.) Di VB.NET, kedua modul dan kelas berada di .VB file. Modul alasan utama termasuk dalam VB.NET adalah untuk memberikan programmer cara untuk mengatur sistem mereka dengan menempatkan kode di tempat yang berbeda untuk menyempurnakan ruang lingkup dan akses untuk mereka kode. (Yaitu, berapa lama anggota modul ada dan kode lain apa yang dapat merujuk dan menggunakan anggota.) Kadang-kadang, Anda mungkin ingin memasukkan kode ke modul terpisah hanya untuk membuatnya lebih mudah untuk dikerjakan.

Semua modul VB.NET adalah Bersama karena mereka tidak dapat dipakai (lihat di atas) dan mereka dapat ditandai Teman atau Publik sehingga mereka dapat diakses baik di dalam rakitan yang sama atau kapan pun mereka direferensikan.

Struktur

Struktur adalah yang paling sedikit dipahami dari tiga bentuk objek. Jika kita berbicara tentang "binatang" dan bukan "benda," strukturnya akan menjadi tapir.

Perbedaan besar antara struktur dan kelas adalah bahwa struktur adalah a tipe nilai dan kelas adalah a jenis referensi.

Apa artinya? Saya senang Anda bertanya.

Tipe nilai adalah objek yang disimpan langsung di memori. Sebuah Bilangan bulat adalah contoh yang baik dari tipe nilai. Jika Anda menyatakan Bilangan bulat dalam program Anda seperti ini ...

Dim myInt as Integer = 10

... dan Anda memeriksa lokasi memori yang disimpan di myInt, Anda akan menemukan nilai 10. Anda juga melihat ini digambarkan sebagai "sedang dialokasikan pada tumpukan".

Tumpukan dan tumpukan hanyalah berbagai cara mengelola penggunaan memori komputer.

Tipe referensi adalah objek di mana lokasi objek disimpan dalam memori. Jadi menemukan nilai untuk tipe referensi selalu merupakan pencarian dua langkah. SEBUAH Tali adalah contoh yang baik dari tipe referensi. Jika Anda menyatakan a Tali seperti ini ...

Redup myString sebagai String = "Ini myString"

... dan Anda memeriksa lokasi memori yang disimpan di myString, Anda akan menemukan lokasi memori lain (disebut a penunjuk - cara melakukan hal-hal ini adalah jantung dari bahasa gaya C). Anda harus pergi ke lokasi itu untuk menemukan nilai "Ini adalah myString". Ini sering disebut "sedang dialokasikan di heap". Tumpukan dan tumpukan

Beberapa penulis mengatakan bahwa tipe nilai bahkan bukan objek dan hanya tipe referensi yang bisa menjadi objek. Memang benar bahwa karakteristik objek canggih seperti warisan dan enkapsulasi hanya dimungkinkan dengan tipe referensi. Tapi kami memulai seluruh artikel ini dengan mengatakan bahwa ada tiga bentuk untuk objek, jadi saya harus menerima bahwa struktur adalah semacam objek, bahkan jika mereka objek non-standar.

Asal-usul pemrograman struktur kembali ke bahasa berorientasi file seperti Cobol. Dalam bahasa-bahasa tersebut, data biasanya diproses sebagai file flat berurutan. "Bidang" dalam catatan dari file dijelaskan oleh bagian "definisi data" (kadang-kadang disebut "tata letak catatan" atau "buku copy"). Jadi, jika catatan dari file tersebut berisi:

1234567890ABCDEF9876

Satu-satunya cara Anda akan tahu bahwa "1234567890" adalah nomor telepon, "ABCDEF" adalah ID dan 9876 adalah $ 98,76 melalui definisi data. Struktur membantu Anda mencapai ini di VB.NET.

Struktur Struktur1
Dim myPhone As String
Dim myID As String
Dim myAmount As String
Struktur Akhir

Karena a Tali adalah jenis referensi, perlu untuk menjaga panjangnya sama dengan VBFixedString atribut untuk catatan panjang tetap. Anda dapat menemukan penjelasan lengkap tentang atribut ini dan atribut secara umum di artikel Atribut pada VB .NET.

Meskipun struktur adalah objek non-standar, mereka memiliki banyak kemampuan di VB.NET. Anda bisa mengode metode, properti, dan bahkan peristiwa, dan penangan peristiwa dalam struktur, tetapi Anda juga bisa menggunakan kode yang lebih sederhana dan karena mereka tipe nilai, pemrosesan bisa lebih cepat. Misalnya, Anda bisa mengode ulang struktur di atas seperti ini:

Struktur Struktur1
Dim myPhone As String
Dim myID As String
Dim myAmount As String
Sub mySub ()
MsgBox ("Ini adalah nilai myPhone:" & myPhone)
End Sub
Struktur Akhir

Dan gunakan seperti ini:

Dim myStruct As Structure1
myStruct.myPhone = "7894560123"
myStruct.mySub ()

Layak waktu Anda untuk bermain-main dengan struktur sedikit dan mempelajari apa yang bisa mereka lakukan. Mereka adalah salah satu sudut aneh VB.NET yang bisa menjadi peluru ajaib ketika Anda membutuhkannya.