C#中bool
和Boolean
類型有什麼區別?C#中bool和布爾類型有什麼區別
回答
bool
是System.Boolean
的別名,就像int
是System.Int32
的別名一樣。在這裏查看別名的完整列表:Built-In Types Table (C# Reference)。
我不相信有一個。
bool
僅僅是System.Boolean
他們是在同一個別名。布爾只是布爾的別名。
一個是另一個的別名。
它們是相同的。布爾有助於簡化C#和VB.Net之間的來回轉換。大多數C#程序員傾向於喜歡'bool',但是如果你在一個有很多VB.Net和C#的商店,那麼你可能更喜歡布爾值,因爲它在兩個地方都可以工作。
如前所述,它們是相同的。有兩個因爲bool是一個C#關鍵字和布爾一個.Net類。
bool是布爾類的別名。在類中調用方法時,我使用別名來聲明變量和類名。
沒有什麼區別 - bool簡直就是System.Boolean的別名。
http://msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx
我意識到這是很多年以後,但我碰到這個頁面跌跌撞撞從谷歌同樣的問題。
到目前爲止,MSDN頁面上有一點小小的區別。
VS2005
注:
如果你需要一個布爾變量,也可以爲空,使用布爾值。 有關更多信息,請參見可空類型(C#編程指南)。
VS2010
注:
如果你需要一個布爾變量,也可以爲空,使用布爾值? 有關更多信息,請參見可空類型(C#編程指南)。
「布爾」是一個包含方法的結構(例如,Equals(布爾型)& FalseString())。 「bool」是一種只保存0或1的數據類型。
也許布爾是一點點 「更輕」 比布爾值;有趣的是,這個改變:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public bool CanUseOnItems { get; set; }
}
}
...這樣的:
namespace DuckbillServerWebAPI.Models
{
public class Expense
{
. . .
public Boolean CanUseOnItems { get; set; }
}
}
...使我的CS文件發芽一個 「使用系統;」將類型改回「bool」導致using子句的頭髮變成灰色。
(Visual Studio 2010中,項目的WebAPI)
注意Boolean
只會工作是你有using System;
(通常是,但不一定包括)(除非你把它寫成System.Boolean
)。 bool
不需要using System;
它們是一樣的,Bool只是縮短了System.Boolean。在使用VB.net程序員時使用布爾值,因爲它適用於C#和Vb
bool是一種原始類型,意味着值(真/假在本例中)直接存儲在變量中。布爾是一個對象。布爾類型的變量存儲對布爾對象的引用。唯一真正的區別是存儲。一個對象總是會佔用比原始類型更多的內存,但實際上,將所有布爾值更改爲布爾值對內存使用率沒有任何明顯影響。
我錯了;這就是它在java中使用布爾值和布爾值的方式。在C#中,布爾和布爾都是引用類型。它們都直接在變量中存儲它們的值,它們都不能爲null,並且它們都需要一個「convertTO」方法來將它們的值存儲在另一個類型中(例如int)。如果您需要調用布爾類中定義的靜態函數,那麼只使用哪一個。
bool是布爾的別名。別名的作用就是在編譯代碼之前用另一個文本替換一個文本字符串(如記事本++中的search/replace-all)。在運行時使用一個在另一個上不起作用。
在大多數其他語言中,一個是基本類型,另一個是對象類型(C#術語中的值類型和引用類型)。 C#不允許您在兩者之間進行選擇。當你想調用一個在布爾類中定義的靜態方法時,它會自動將魔術視爲一個參考類型。如果您創建了一個新的布爾變量,它會自動將其視爲引用類型(除非使用Activator.CreateInstance方法)。
- 1. Objective-C中布爾和布爾之間有什麼區別嗎?
- 2. C中_Bool和bool類型的區別?
- 3. bool和BOOL有什麼區別?
- 4. 「bool」和「bool?」有什麼區別?
- 5. MySQL中boolean和bool有什麼區別?
- 6. MySQL BOOL和BOOLEAN列數據類型有什麼區別?
- 7. init()和init(_:bool)有什麼區別
- 8. true是什麼區別?和布爾值
- 9. C++「類型推導」和Haskell「類型推論」有什麼區別?
- 10. 區別布爾和布爾?
- 11. object.operator bool()和(bool)對象有什麼區別?
- 12. Cython中numpy「類型標識符」和「類型」有什麼區別?
- 13. Haskell中的類型和數據類型有什麼區別?
- 14. printf中%c和%C有什麼區別?
- 15. 泛型類型和泛型類型定義有什麼區別?
- 16. 什麼布爾類型
- 17. C#中值類型和引用類型之間有什麼區別?
- 18. 使用=和==比較布爾值與布爾變量有什麼區別?
- 19. 這個類中的靜態布爾和一個私有靜態布爾有什麼區別?
- 20. C#&CLI與值類型和構造函數有什麼區別?
- 21. 布爾值上使用as.integer()和+ 0L有什麼區別?
- 22. VBA和Javascript布爾表達式有什麼區別?
- 23. 類型巴貝爾和jsx之間的區別是什麼
- 24. Python中的if bool(x)`和if x`有什麼區別嗎?
- 25. 在PHP中$ bar = boolval($ foo)和$ bar =(bool)$ foo有什麼區別?
- 26. C++中fprintf和vfprintf有什麼區別?
- 27. C++中0x和'\ x'有什麼區別?
- 28. C#中CLR和DLR有什麼區別?
- 29. C++中#import和#include有什麼區別?
- 30. C中#define和'='有什麼區別?
從上面的鏈接微軟說C#類型的關鍵字和他們的別名是可以互換的但爲什麼我們需要別名,從我的角度來看布爾是更有意義的,然後布爾和Int32更有意義,然後int然後爲什麼別名? – 2010-03-18 11:39:35
@asim:懶惰?它不那麼打字並且避免了導入系統的需要。就個人而言,我更喜歡別名。鍵入「int」比鍵入「Int32」要快得多。 – 2010-03-18 13:47:34
@asmin:這是一個C的東西。 int,float等是C和C++程序員熟悉的關鍵字,因此Microsoft決定使用這些別名來保持一致性。 – 2011-02-03 01:34:16