Apa perbedaan antara bool
dan Boolean
jenis dalam C #?
Apa perbedaan antara bool
dan Boolean
jenis dalam C #?
Jawaban:
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
dan Boolean
bukan hal yang sama. Satu adalah tipe data primitif dan yang lainnya adalah objek.
Tidak ada perbedaan - bool hanyalah sebuah alias dari System.Boolean.
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
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
catatan:
Jika Anda memerlukan variabel Boolean yang juga bisa memiliki nilai nol, gunakan bool. Untuk informasi lebih lanjut, lihat Jenis Nullable (Panduan Pemrograman C #).
VS2010
catatan:
Jika Anda memerlukan variabel Boolean yang juga dapat memiliki nilai nol, gunakan bool ?. Untuk informasi lebih lanjut, lihat Jenis Nullable (Panduan Pemrograman C #).
bool
bisa berisi nol, tetapi Boolean
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.
bool adalah alias untuk kelas Boolean. Saya menggunakan alias saat mendeklarasikan variabel dan nama kelas saat memanggil metode di kelas.
Mereka sama, Bool hanyalah System.Boolean disingkat. Gunakan Boolean ketika Anda bersama seorang programmer VB.net, karena ia bekerja dengan C # dan Vb
Perhatikan bahwa Boolean
hanya akan berfungsi jika Anda memiliki using System;
(yang biasanya, tetapi tidak harus, termasuk) (kecuali jika Anda menuliskannya sebagai System.Boolean
). bool
tidak perluusing System;
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.
bool
dan Boolean
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 memanggil ConvertTo
metode untuk mengubahnya ke tipe lain.
bool
dan Boolean
keduanya tipe referensi". Kata-kata bool
dan Boolean
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).
Mungkin bool sedikit "lebih ringan" dari Boolean; Menariknya, mengubah ini:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
...untuk ini:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
... menyebabkan file cs saya memunculkan "using System;" Mengubah jenis kembali ke "bool" menyebabkan rambut menggunakan klausa menjadi abu-abu.
(Visual Studio 2010, proyek WebAPI)
System.Boolean
bukan hanya adil Boolean
. Itu using System;
muncul karena diizinkan Boolean
untuk diartikan dengan benar System.Boolean
. Tidak benar-benar lebih ringan daripada hanya kurang verbose.