2008-09-25 109 views

回答

327

boolSystem.Boolean的別名,就像intSystem.Int32的別名一樣。在這裏查看別名的完整列表:Built-In Types Table (C# Reference)

+4

從上面的鏈接微軟說C#類型的關鍵字和他們的別名是可以互換的但爲什麼我們需要別名,從我的角度來看布爾是更有意義的,然後布爾和Int32更有意義,然後int然後爲什麼別名? – 2010-03-18 11:39:35

+5

@asim:懶惰?它不那麼打字並且避免了導入系統的需要。就個人而言,我更喜歡別名。鍵入「int」比鍵入「Int32」要快得多。 – 2010-03-18 13:47:34

+7

@asmin:這是一個C的東西。 int,float等是C和C++程序員熟悉的關鍵字,因此Microsoft決定使用這些別名來保持一致性。 – 2011-02-03 01:34:16

41

我不相信有一個。

bool僅僅是System.Boolean

22

他們是在同一個別名。布爾只是布爾的別名。

9

一個是另一個的別名。

13

它們是相同的。布爾有助於簡化C#和VB.Net之間的來回轉換。大多數C#程序員傾向於喜歡'bool',但是如果你在一個有很多VB.Net和C#的商店,那麼你可能更喜歡布爾值,因爲它在兩個地方都可以工作。

8

如前所述,它們是相同的。有兩個因爲bool是一個C#關鍵字和布爾一個.Net類。

5

bool是布爾類的別名。在類中調用方法時,我使用別名來聲明變量和類名。

13

我意識到這是很多年以後,但我碰到這個頁面跌跌撞撞從谷歌同樣的問題。

到目前爲止,MSDN頁面上有一點小小的區別。

VS2005

注:

如果你需要一個布爾變量,也可以爲空,使用布爾值。 有關更多信息,請參見可空類型(C#編程指南)。

VS2010

注:

如果你需要一個布爾變量,也可以爲空,使用布爾值? 有關更多信息,請參見可空類型(C#編程指南)。

-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)

1

注意Boolean只會工作是你有using System;(通常是,但不一定包括)(除非你把它寫成System.Boolean)。 bool不需要using System;

2

它們是一樣的,Bool只是縮短了System.Boolean。在使用VB.net程序員時使用布爾值,因爲它適用於C#和Vb

0

bool是一種原始類型,意味着值(真/假在本例中)直接存儲在變量中。布爾是一個對象。布爾類型的變量存儲對布爾對象的引用。唯一真正的區別是存儲。一個對象總是會佔用比原始類型更多的內存,但實際上,將所有布爾值更改爲布爾值對內存使用率沒有任何明顯影響。

我錯了;這就是它在java中使用布爾值和布爾值的方式。在C#中,布爾和布爾都是引用類型。它們都直接在變量中存儲它們的值,它們都不能爲null,並且它們都需要一個「convertTO」方法來將它們的值存儲在另一個類型中(例如int)。如果您需要調用布爾類中定義的靜態函數,那麼只使用哪一個。

-1

bool是布爾的別名。別名的作用就是在編譯代碼之前用另一個文本替換一個文本字符串(如記事本++中的search/replace-all)。在運行時使用一個在另一個上不起作用。

在大多數其他語言中,一個是基本類型,另一個是對象類型(C#術語中的值類型和引用類型)。 C#不允許您在兩者之間進行選擇。當你想調用一個在布爾類中定義的靜態方法時,它會自動將魔術視爲一個參考類型。如果您創建了一個新的布爾變量,它會自動將其視爲引用類型(除非使用Activator.CreateInstance方法)。