Apakah VB.NET memiliki ekuivalen langsung dengan out
parameter fungsi C # , di mana variabel yang dilewatkan ke suatu fungsi tidak perlu diinisialisasi?
vb.net
c#-to-vb.net
out-parameters
cspolton.dll
sumber
sumber
Object
, jadi tidak dapat digunakan untukByRef x As Integer
parameter).ByRef
parameter. (Ini tidak terjadi dengan parameter tipe nilai.)Nothing
kepada mereka akan menghilangkan peringatan tersebut meskipun tidak mengubah hasil.Nothing
mereka sejauh ini. Ini hanya memakan waktu karena saya harus melakukannya ratusan kali di situs web lama yang besar. Terima kasih telah menyelidiki.Out
atributnya tidak setara denganout
kata kunci C # .Tidak, tidak ada konstruk setara yang memungkinkan variabel non-dijalankan untuk diteruskan ke metode tanpa peringatan, tapi, seperti disebutkan dalam saya tanya jawab menentukan sebuah
<Out()>
atribut padaByRef
definisi parameter, meskipun VB mengabaikannya, yang diobati dengan C # sebagaiout
parameter.Jadi, saya akan menginisialisasi variabel referensi ke
Nothing
dan menentukan<Out()> ByRef
untuk menandakan niat (yang akan berfungsi jika pengguna C # pernah mengakses metode Anda).Jika Anda merasa tahu kapan Anda bermaksud mengakses default
Nothing
di variabel referensi yang tidak ditetapkan, Anda dapat mengatur "Konfigurasi peringatan" "Penggunaan variabel sebelum penetapan" ke "Tidak ada" di tingkat Proyek (Properti Proyek> Kompilasi, dan Anda mungkin ingin mengatur Konfigurasi ke "Semua Konfigurasi" sebelum mengubah pengaturan ini), atau, di VS2015 (VB.NET 14), Anda dapat menggunakan#Disable Warning BC42030
.sumber
Versi C #
Versi Vb.net
Temukan jawabannya di sini
Memperbarui
Seperti yang dinyatakan di komentar jangan lupa untuk menginisialisasi parameter Anda yang akan digunakan di slot keluar
sumber
Saya punya masalah di VB.NET yang saya sebut fungsi "oleh ref" yang melewati array kembali.
Meskipun kompilator menandainya sebagai peringatan, itu baik-baik saja. Cara mengatasinya sangat sederhana dan mungkin praktik pemrograman yang baik.
aku berubah
untuk
Ini juga membantu saat membuat kode jika nama variabel bersifat deskriptif ...
sumber
Anda dapat menggunakan metode pass by reference di VB.NET.
Anda memerlukan mekanisme parameter Out di C #, karena ini tidak mengizinkan Anda menggunakan variabel apa pun tanpa memulainya.
VB.NET tidak memerlukan kata kunci khusus karena secara otomatis melakukannya dengan sendirinya.
Cukup gunakan ByRef.
sumber
VB memiliki atribut yang seharusnya sama dengan C # out tetapi hari ini Anda masih mendapatkan peringatan meskipun Anda menggunakannya. Ada detail tentang memperbaikinya di area vblang github. https://github.com/dotnet/vblang/issues/67 .
sumber
Gunakan kata kunci ByRef sebelum variabel.
sumber
ByRef
setara denganref
parameter dalam C #, yang perlu diinisialisasi sebelum diteruskan ke suatu fungsi.