标签:强制 reac padding oat cte 十进制 布尔 border false
由于本人拥有C/C++的基础,所以在學習C#的時候還是比較快的,在最基礎的東西之中我只會記錄那些與C/C++不同的地方,或者個人認爲比較重要的地方。
C#中的數據類型與C++沒有太多的差異,具體情況如下表格。其中比較重要的是需要對decimal有一個印象,你可以理解為一個精度更高的double類型。
类型 | 描述 | 范围 | 默认值 |
---|---|---|---|
bool | 布尔值 | True 或 False | False |
byte | 8 位无符号整数 | 0 到 255 | 0 |
char | 16 位 Unicode 字符 | U +0000 到 U +ffff | ‘\0‘ |
decimal | 128 位精确的十进制值,28-29 有效位数 | (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 | 0.0M |
double | 64 位双精度浮点型 | (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 | 0.0D |
float | 32 位单精度浮点型 | -3.4 x 1038 到 + 3.4 x 1038 | 0.0F |
int | 32 位有符号整数类型 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64 位有符号整数类型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
sbyte | 8 位有符号整数类型 | -128 到 127 | 0 |
short | 16 位有符号整数类型 | -32,768 到 32,767 | 0 |
uint | 32 位无符号整数类型 | 0 到 4,294,967,295 | 0 |
ulong | 64 位无符号整数类型 | 0 到 18,446,744,073,709,551,615 | 0 |
ushort | 16 位无符号整数类型 | 0 到 65,535 | 0 |
對於隱式的類型轉換大家都知道,所以不做特殊説明。而一般的類型强轉與C++相同,只需要在需要轉換的變量前面使用括號加上需要轉換的結果數據類型。例如把一個double墻磚為int:
double n = 100.1; int m = (int)n;
但是除了這樣的方式還有其他的數據類型轉換方式:
ToBoolean |
如果可能的话,把类型转换为布尔型 |
ToByte |
把类型转换为字节类型 |
ToChar |
如果可能的话,把类型转换为单个 Unicode 字符类型。 |
ToDateTime |
把类型(整数或字符串类型)转换为 日期-时间 结构 |
ToDecimal |
把浮点型或整数类型转换为十进制类型。 |
ToDouble |
把类型转换为双精度浮点型。 |
ToInt16 |
把类型转换为 16 位整数类型。 |
ToInt32 |
把类型转换为 32 位整数类型。 |
ToInt64 |
把类型转换为 64 位整数类型。 |
ToSbyte |
把类型转换为有符号字节类型。 |
ToSingle |
把类型转换为小浮点数类型。 |
ToString |
把类型转换为字符串类型。 |
ToType |
把类型转换为指定类型。 |
ToUInt16 |
把类型转换为 16 位无符号整数类型。 |
ToUInt32 |
把类型转换为 32 位无符号整数类型。 |
ToUInt64 |
把类型转换为 64 位无符号整数类型。 |
補充一點:
使用上述類型轉換的前提是需要能夠轉換,比如double和int都是數值之間的轉換,最多也就是損失一下精度而已,可是如果你想把字符串轉化成數值類型呢?你要知道"123"和123是完全不同的,這時候你使用强制類型轉換必然出錯,你説我們可以使用第二個表格中的轉換函數啊,是這樣的。可是如果這個字符串是“123abc”呢?這時候程序就會給你抛出一個異常,因爲這個字符串不僅僅包含數字,同時包含其他的字母,這時候可以使用as關鍵字進行類型轉換,這時即便轉換失敗也不會抛出異常。
可能你會説就爲了這個?當然不是,因爲as除了對基本數據類型的轉換還可以轉換引用數據類型,比如把一個Student類的對象轉換為Teacher類對象,儘管有可能失敗,但是不會抛異常。
C#的if, if/else, while, do/while, for都與C++沒有差異,同時c#也支持foreach語句。
相對於C++中的修飾符,c#多了後面兩個intemal和protected intemal
标签:强制 reac padding oat cte 十进制 布尔 border false
原文地址:https://www.cnblogs.com/ltozvxe/p/12515907.html