Apa perbedaan antara bool
dan Boolean
jenis dalam C #?
338
bool
adalah alias untuk System.Boolean
seperti halnya int
alias untuk System.Int32
. Lihat daftar lengkap alias di sini: Tabel Jenis Bawaan (Referensi C #) .
boolean
danBoolean
bukan hal yang sama. Satu adalah tipe data primitif dan yang lainnya adalah objek.Saya tidak percaya ada satu.
bool
hanyalah alias untukSystem.Boolean
sumber
Mereka satu dalam persamaan. bool hanyalah alias untuk Boolean.
sumber
Tidak ada perbedaan - bool hanyalah sebuah alias dari System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
sumber
Saya menyadari ini bertahun-tahun kemudian tetapi saya menemukan halaman ini dari google dengan pertanyaan yang sama.
Ada satu perbedaan kecil pada halaman MSDN seperti yang sekarang.
VS2005
VS2010
sumber
bool
bisa berisi nol, tetapiBoolean
tidak bisa. Meskipun ada tautan dari yang lebih lama ke dokumentasi yang lebih baru, saya tidak membaca dokumentasi yang lebih baru secara menyeluruh untuk melihat?
perbedaan tunggal .Mereka sama. Boolean membantu menyederhanakan konversi bolak-balik antara C # dan VB.Net. Kebanyakan programmer C # cenderung memilih 'bool', tetapi jika Anda berada di toko di mana ada banyak VB.Net dan C # maka Anda mungkin lebih suka Boolean karena ia bekerja di kedua tempat.
sumber
Seperti yang telah dikatakan, mereka sama. Ada dua karena bool adalah kata kunci C # dan Boolean adalah kelas .Net.
sumber
Satu adalah alias untuk yang lain.
sumber
bool adalah alias untuk kelas Boolean. Saya menggunakan alias saat mendeklarasikan variabel dan nama kelas saat memanggil metode di kelas.
sumber
Mereka sama, Bool hanyalah System.Boolean disingkat. Gunakan Boolean ketika Anda bersama seorang programmer VB.net, karena ia bekerja dengan C # dan Vb
sumber
Perhatikan bahwa
Boolean
hanya akan berfungsi jika Anda memilikiusing System;
(yang biasanya, tetapi tidak harus, termasuk) (kecuali jika Anda menuliskannya sebagaiSystem.Boolean
).bool
tidak perluusing System;
sumber
bool adalah tipe primitif, artinya nilai (true / false dalam kasus ini) disimpan langsung dalam variabel. Boolean adalah sebuah objek. Variabel tipe Boolean menyimpan referensi ke objek Boolean. Satu-satunya perbedaan nyata adalah penyimpanan. Objek akan selalu mengambil lebih banyak memori daripada tipe primitif, tetapi dalam kenyataannya, mengubah semua nilai Boolean Anda menjadi bool tidak akan memiliki dampak nyata pada penggunaan memori.Saya salah; begitulah cara kerjanya di java dengan boolean dan Boolean. Dalam C #, bool dan Boolean keduanya jenis referensi. Keduanya menyimpan nilai mereka secara langsung dalam variabel, keduanya tidak boleh nol, dan keduanya membutuhkan metode "convertTO" untuk menyimpan nilai-nilai mereka di tipe lain (seperti int). Itu hanya masalah yang mana yang Anda gunakan jika Anda perlu memanggil fungsi statis yang didefinisikan dalam kelas Boolean.
sumber
bool
danBoolean
bukan dua tipe yang berbeda, bahwa satu tipe bukan tipe referensi, Anda dapat memanggil metode statis pada satu tipe itu menggunakan pengenal, dan Anda sebenarnya tidak perlu memanggilConvertTo
metode untuk mengubahnya ke tipe lain.bool
danBoolean
keduanya tipe referensi". Kata-katabool
danBoolean
keduanya merujuk pada tipe yang sama, dan tipe itu adalah tipe nilai, bukan tipe referensi.bool adalah alias untuk Boolean. Apa alias lakukan adalah mengganti satu string teks dengan yang lain (seperti pencarian / ganti-semua di notepad ++), tepat sebelum kode dikompilasi. Menggunakan salah satu dari yang lain tidak memiliki efek pada saat dijalankan.
Dalam sebagian besar bahasa lain, satu akan menjadi tipe primitif dan yang lainnya akan menjadi tipe objek (tipe nilai dan tipe referensi dalam C # jargon). C # tidak memberi Anda opsi untuk memilih di antara keduanya. Ketika Anda ingin memanggil metode statis yang didefinisikan dalam kelas Boolean, itu secara otomatis memperlakukan Boolean sebagai tipe referensi. Jika Anda membuat variabel Boolean baru, itu secara otomatis memperlakukannya sebagai tipe referensi (kecuali Anda menggunakan metode Activator.CreateInstance).
sumber
Mungkin bool sedikit "lebih ringan" dari Boolean; Menariknya, mengubah ini:
...untuk ini:
... menyebabkan file cs saya memunculkan "using System;" Mengubah jenis kembali ke "bool" menyebabkan rambut menggunakan klausa menjadi abu-abu.
(Visual Studio 2010, proyek WebAPI)
sumber
System.Boolean
bukan hanya adilBoolean
. Ituusing System;
muncul karena diizinkanBoolean
untuk diartikan dengan benarSystem.Boolean
. Tidak benar-benar lebih ringan daripada hanya kurang verbose.