C++/CLI所支持的基本類型,例如int、double、bool等,在某些方面可以說是沿襲了ISO-C++中的類型——同樣的用法會在C++/CLI中得到同樣的結(jié)果,例如加法或者賦值操作。但是C++/CLI也為這些基本類型引入了一些新的東西。
在通用類型系統(tǒng)(CTS)中,每一個(gè)基本類型都在System命名空間中存在一個(gè)對應(yīng)的類(見表1)。例如int實(shí)際上完全等價(jià)于System::Int32。我們可以使用二者中的任何一個(gè)來聲明一個(gè)整數(shù):
int ival = 0;
Int32 ival2 = 0;
出于移植性的考慮,在使用這些基本類型時(shí),我們推薦大家使用內(nèi)建的關(guān)鍵詞,而非System命名空間中的類名。
對于System命名空間中類的公有靜態(tài)成員,我們既可以通過內(nèi)建的關(guān)鍵字,也可以通過System命名空間中的類名來訪問。例如,為了獲取一個(gè)數(shù)值類型的取值范圍,我們可以直接使用內(nèi)建的關(guān)鍵字來訪問其靜態(tài)屬性MaxValue和MinValue。
int imaxval = int::MaxValue;
int iminval = Int32::MinValue;
每個(gè)數(shù)值類型都支持一個(gè)名為Parse的成員函數(shù),用以將一個(gè)字符串轉(zhuǎn)化為其所表示的數(shù)值。例如,給定下面的字符串:
String^ bonus = "$ 12,000.79";
調(diào)用Parse會將myBonus初始化為12000.79:
double myBonus = double::Parse( bonus, ns );
其中ns表示對一些NumberStyles枚舉類型取位或(bitwise or)運(yùn)算的結(jié)果。NumberStyles是位于System::Globalization命名空間中的一個(gè)枚舉類型,用于表征對空白、貨幣符號、小數(shù)點(diǎn)或者逗號等的處理??聪旅娴拇a:
using namespace System;
using namespace System::Globalization;
double bonusString( String^ bonus )
{
NumberStyles ns = NumberStyles::AllowLeadingWhite;
ns = NumberStyles::AllowCurrencySymbol;
ns = NumberStyles::AllowThousands;
ns = NumberStyles::AllowDecimalPoint;
return double::Parse( bonus, ns );
}
在通用類型系統(tǒng)(CTS)中,每一個(gè)基本類型都在System命名空間中存在一個(gè)對應(yīng)的類(見表1)。例如int實(shí)際上完全等價(jià)于System::Int32。我們可以使用二者中的任何一個(gè)來聲明一個(gè)整數(shù):
int ival = 0;
Int32 ival2 = 0;
出于移植性的考慮,在使用這些基本類型時(shí),我們推薦大家使用內(nèi)建的關(guān)鍵詞,而非System命名空間中的類名。
對于System命名空間中類的公有靜態(tài)成員,我們既可以通過內(nèi)建的關(guān)鍵字,也可以通過System命名空間中的類名來訪問。例如,為了獲取一個(gè)數(shù)值類型的取值范圍,我們可以直接使用內(nèi)建的關(guān)鍵字來訪問其靜態(tài)屬性MaxValue和MinValue。
int imaxval = int::MaxValue;
int iminval = Int32::MinValue;
每個(gè)數(shù)值類型都支持一個(gè)名為Parse的成員函數(shù),用以將一個(gè)字符串轉(zhuǎn)化為其所表示的數(shù)值。例如,給定下面的字符串:
String^ bonus = "$ 12,000.79";
調(diào)用Parse會將myBonus初始化為12000.79:
double myBonus = double::Parse( bonus, ns );
其中ns表示對一些NumberStyles枚舉類型取位或(bitwise or)運(yùn)算的結(jié)果。NumberStyles是位于System::Globalization命名空間中的一個(gè)枚舉類型,用于表征對空白、貨幣符號、小數(shù)點(diǎn)或者逗號等的處理??聪旅娴拇a:
using namespace System;
using namespace System::Globalization;
double bonusString( String^ bonus )
{
NumberStyles ns = NumberStyles::AllowLeadingWhite;
ns = NumberStyles::AllowCurrencySymbol;
ns = NumberStyles::AllowThousands;
ns = NumberStyles::AllowDecimalPoint;
return double::Parse( bonus, ns );
}

