Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat memperoleh kelas Visual Basic dari Public
kelas di objek COM, bahkan yang dibuat di versi Visual Basic sebelumnya. Properti dan metode kelas yang diwariskan dari objek COM dapat ditimpa atau kelebihan beban hanya karena properti dan metode kelas dasar lainnya dapat ditimpa atau kelebihan beban. Pewarisan dari objek COM berguna ketika Anda memiliki pustaka kelas yang sudah ada yang tidak ingin Anda kompilasi ulang.
Prosedur berikut menunjukkan cara menggunakan Visual Basic 6.0 untuk membuat objek COM yang berisi kelas, lalu menggunakannya sebagai kelas dasar.
Nota
Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam instruksi berikut. Edisi Visual Studio yang Anda miliki dan pengaturan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi lebih lanjut, lihat Mempersonalisasi IDE.
Untuk membangun objek COM yang digunakan dalam panduan ini
Di Visual Basic 6.0, buka proyek DLL ActiveX baru. Proyek bernama
Project1
dibuat. Ini memiliki kelas bernamaClass1
.Di Penjelajah Proyek, klik kanan Project1, lalu klik Properti Project1. Kotak dialog Properti Proyek ditampilkan.
Pada tab Umum dari kotak dialog Properti Proyek , ubah nama proyek dengan mengetik
ComObject1
di bidang Nama Proyek .Di Penjelajah Proyek, klik
Class1
kanan , lalu klik Properti. Jendela Properti untuk kelas ditampilkan.Ubah properti
Name
menjadiMathFunctions
.Di Penjelajah Proyek, klik
MathFunctions
kanan , lalu klik Tampilkan Kode. Editor Kode ditampilkan.Tambahkan variabel lokal untuk menahan nilai properti:
' Local variable to hold property value Private mvarProp1 As Integer
Tambahkan prosedur operasi untuk Properti
Let
dan PropertiGet
.Public Property Let Prop1(ByVal vData As Integer) 'Used when assigning a value to the property. mvarProp1 = vData End Property Public Property Get Prop1() As Integer 'Used when retrieving a property's value. Prop1 = mvarProp1 End Property
Tambahkan fungsi:
Function AddNumbers( ByVal SomeNumber As Integer, ByVal AnotherNumber As Integer) As Integer AddNumbers = SomeNumber + AnotherNumber End Function
Buat dan daftarkan objek COM dengan mengklik Buat ComObject1.dll pada menu File .
Nota
Meskipun Anda juga dapat mengekspos kelas yang dibuat dengan Visual Basic sebagai objek COM, itu bukan objek COM yang sebenarnya dan tidak dapat digunakan dalam panduan ini. Untuk detailnya, lihat Interoperabilitas COM di Aplikasi .NET Framework.
Majelis Interop
Dalam prosedur berikut, Anda akan membuat perakitan interop, yang bertindak sebagai jembatan antara kode yang tidak dikelola (seperti objek COM) dan kode terkelola yang digunakan Visual Studio. Rakitan interop yang dibuat Visual Basic menangani banyak detail bekerja dengan objek COM, seperti interop marshalling, proses parameter pengemasan dan mengembalikan nilai menjadi jenis data yang setara saat berpindah ke dan dari objek COM. Referensi dalam aplikasi Visual Basic menunjuk ke perakitan interop, bukan objek COM yang sebenarnya.
Untuk menggunakan objek COM dengan Visual Basic 2005 dan versi yang lebih baru
Buka proyek Aplikasi Windows Visual Basic baru.
Pada menu Proyek, klik Tambahkan Referensi.
Kotak dialog Tambahkan Referensi ditampilkan.
Pada tab COM , klik
ComObject1
dua kali di daftar Nama Komponen dan klik OK.Pada menu Proyek, klik Tambahkan Item Baru.
Kotak dialog Tambahkan Item Baru ditampilkan.
Di panel Templat , klik Kelas.
Nama file default,
Class1.vb
, muncul di bidang Nama . Ubah bidang ini menjadi MathClass.vb dan klik Tambahkan. Ini membuat kelas bernamaMathClass
, dan menampilkan kodenya.Tambahkan kode berikut ke bagian
MathClass
atas untuk mewarisi dari kelas COM.' The inherited class is called MathFunctions in the base class, ' but the interop assembly appends the word Class to the name. Inherits ComObject1.MathFunctionsClass
Kelebihan beban metode publik kelas dasar dengan menambahkan kode berikut ke
MathClass
:' This method overloads the method AddNumbers from the base class. Overloads Function AddNumbers( ByVal SomeNumber As Integer, ByVal AnotherNumber As Integer) As Integer Return SomeNumber + AnotherNumber End Function
Perluas kelas yang diwariskan dengan menambahkan kode berikut ke
MathClass
:' The following function extends the inherited class. Function SubtractNumbers( ByVal SomeNumber As Integer, ByVal AnotherNumber As Integer) As Integer Return AnotherNumber - SomeNumber End Function
Kelas baru mewarisi properti kelas dasar di objek COM, membebani metode, dan menentukan metode baru untuk memperluas kelas.
Untuk menguji kelas yang diwariskan
Tambahkan tombol ke formulir startup Anda, lalu klik dua kali untuk melihat kodenya.
Dalam prosedur penanganan aktivitas tombol
Click
, tambahkan kode berikut untuk membuat instansMathClass
dan memanggil metode yang kelebihan beban:Dim Result1 As Short Dim Result2 As Integer Dim Result3 As Integer Dim MathObject As New MathClass Result1 = MathObject.AddNumbers(4S, 2S) ' Add two Shorts. Result2 = MathObject.AddNumbers(4, 2) 'Add two Integers. Result3 = MathObject.SubtractNumbers(2, 4) ' Subtract 2 from 4. MathObject.Prop1 = 6 ' Set an inherited property. MsgBox("Calling the AddNumbers method in the base class " & "using Short type numbers 4 and 2 = " & Result1) MsgBox("Calling the overloaded AddNumbers method using " & "Integer type numbers 4 and 2 = " & Result2) MsgBox("Calling the SubtractNumbers method " & "subtracting 2 from 4 = " & Result3) MsgBox("The value of the inherited property is " & MathObject.Prop1)
Jalankan proyek dengan menekan F5.
Saat Anda mengklik tombol pada formulir, metode AddNumbers
pertama kali dipanggil dengan jenis data Short
angka, dan kemudian Visual Basic memilih metode yang sesuai dari kelas dasar. Panggilan kedua ke AddNumbers
diarahkan ke metode kelebihan beban dari MathClass
. Panggilan ketiga memanggil SubtractNumbers
metode , yang memperluas kelas . Properti di kelas dasar ditetapkan, dan nilainya ditampilkan.
Langkah Selanjutnya
Anda mungkin telah memperhatikan bahwa fungsi overload AddNumbers
tampaknya memiliki tipe data yang sama dengan metode yang diwarisi dari kelas dasar dari objek COM. Ini karena argumen dan parameter metode kelas dasar didefinisikan sebagai bilangan bulat 16-bit di Visual Basic 6.0, tetapi diekspos sebagai bilangan Short
bulat tipe 16-bit di versi Visual Basic yang lebih baru. Fungsi baru menerima bilangan bulat 32-bit, dan membebani fungsi kelas dasar.
Saat bekerja dengan objek COM, pastikan Anda memverifikasi ukuran dan jenis data parameter. Misalnya, saat Anda menggunakan objek COM yang menerima objek koleksi Visual Basic 6.0 sebagai argumen, Anda tidak dapat menyediakan koleksi dari versi Visual Basic yang lebih baru.
Properti dan metode yang diwariskan dari kelas COM dapat ditimpa, yang berarti Anda dapat mendeklarasikan properti atau metode lokal untuk menggantikan properti atau metode yang diwarisi dari kelas COM dasar. Aturan untuk mengambil alih properti COM yang diwariskan mirip dengan aturan untuk mengambil alih properti dan metode lain dengan pengecualian berikut:
Jika Anda menggantikan properti atau metode apa pun yang diwariskan dari kelas COM, Anda harus menggantikan semua properti dan metode lainnya yang diwariskan.
Properti yang menggunakan parameter
ByRef
tidak dapat diubah secara konvensional.