-
數(shù)據(jù)類型
值類型:從類 System.ValueType 中派生
類型 | 描述 | 范圍 | 默認(rèn)值 |
---|---|---|---|
bool | 布爾值 | True 或 False | False |
byte | 8 位無符號整數(shù) | 0 到 255 | 0 |
char | 16 位 Unicode 字符 | U +0000 到 U +ffff | '\0' |
decimal | 128 位精確的十進(jìn)制值沫浆,28-29 有效位數(shù) | (-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 位有符號整數(shù)類型 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64 位有符號整數(shù)類型 | -923,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
sbyte | 8 位有符號整數(shù)類型 | -128 到 127 | 0 |
short | 16 位有符號整數(shù)類型 | -32,768 到 32,767 | 0 |
uint | 32 位無符號整數(shù)類型 | 0 到 4,294,967,295 | 0 |
ulong | 64 位無符號整數(shù)類型 | 0 到 18,446,744,073,709,551,615 | 0 |
ushort | 16 位無符號整數(shù)類型 | 0 到 65,535 | 0 |
引用類型:
- 引用類型不包含存儲在變量中的實際數(shù)據(jù),只包含對變量的引用
- 引用對象指向一個內(nèi)存位置
- 內(nèi)置的 引用類型有:object辆毡、dynamic 和 string
- 對象類型object是c#中所有類的基類,故通過類型轉(zhuǎn)換,object類型可以被分配其他類型的值
裝箱:將值類型轉(zhuǎn)換為對象類型
拆箱:將對象類型轉(zhuǎn)換為值類型 - 動態(tài)類型dynamic可以存儲任何類型的值
對象類型變量的類型檢查發(fā)生在編譯時,而動態(tài)類型的類型檢查是在運(yùn)行時 - 字符串類型string派生自object類,通過"引號實現(xiàn)(@可實現(xiàn)原始字符串類型)
指針類型:
指針類型存儲指向數(shù)據(jù)的內(nèi)存地址
using System;
namespace CSharpBasic {
public class CSharp{
static void Main (String[] args) {
/*數(shù)據(jù)類型:*/
//值類型
int a = 3;
double b = 3.45;
float c = 2.33f;
Console.WriteLine("int:{0}\tdouble:{1}\tfloat:{2}",a,b,c);
//引用類型
object d = 129;//裝箱,對象類型
dynamic e = 133;//動態(tài)類型
string f = "JianShu";//字符串
string g = @"
object d = 129;//裝箱,對象類型
dynamic e = 133;//動態(tài)類型
string f = 'JianShu';//字符串";
Console.WriteLine("object:{0}\tdynamic:{1}\tstring:{2}",d,e,f);
Console.WriteLine("@string:{0}",g);
}
}
}
F:\Jn\C#\CSHARP>csharp_basic
int:3 double:3.45 float:2.33
object:129 dynamic:133 string:JianShu
@string:
object d = 129;//裝箱,對象類型
dynamic e = 133;//動態(tài)類型
string f = 'JianShu';//字符串
-
類型轉(zhuǎn)換
-
隱式類型轉(zhuǎn)換:C# 默認(rèn)的以安全方式進(jìn)行的轉(zhuǎn)換,,不會導(dǎo)致數(shù)據(jù)丟失
例:從小的整數(shù)類型轉(zhuǎn)換為大的整數(shù)類型,從派生類轉(zhuǎn)換為基類 -
顯式類型轉(zhuǎn)換:顯式類型轉(zhuǎn)換,即強(qiáng)制類型轉(zhuǎn)換
顯式轉(zhuǎn)換需要強(qiáng)制轉(zhuǎn)換運(yùn)算符,而且強(qiáng)制轉(zhuǎn)換可能會造成數(shù)據(jù)丟失 - c#提供的類型轉(zhuǎn)換方法如下:
方法 | 描述 |
---|---|
ToBoolean | 如果可能的話,把類型轉(zhuǎn)換為布爾型 |
ToByte | 把類型轉(zhuǎn)換為字節(jié)類型 |
ToChar | 如果可能的話,把類型轉(zhuǎn)換為單個 Unicode 字符類型 |
ToDateTime | 把類型(整數(shù)或字符串類型)轉(zhuǎn)換為 日期-時間 結(jié)構(gòu) |
ToDecimal | 把浮點型或整數(shù)類型轉(zhuǎn)換為十進(jìn)制類型 |
ToDouble | 把類型轉(zhuǎn)換為雙精度浮點型 |
ToInt16 | 把類型轉(zhuǎn)換為 16 位整數(shù)類型 |
ToInt32 | 把類型轉(zhuǎn)換為 32 位整數(shù)類型 |
ToInt64 | 把類型轉(zhuǎn)換為 64 位整數(shù)類型 |
ToSbyte | 把類型轉(zhuǎn)換為有符號字節(jié)類型 |
ToSingle | 把類型轉(zhuǎn)換為小浮點數(shù)類型 |
ToString | 把類型轉(zhuǎn)換為字符串類型 |
ToType | 把類型轉(zhuǎn)換為指定類型 |
ToUInt16 | 把類型轉(zhuǎn)換為 16 位無符號整數(shù)類型 |
ToUInt32 | 把類型轉(zhuǎn)換為 32 位無符號整數(shù)類型 |
ToUInt64 | 把類型轉(zhuǎn)換為 64 位無符號整數(shù)類型 |
using System;
namespace CSharpBasic {
public class CSharp{
static void Main (String[] args) {
/*類型轉(zhuǎn)換 */
int h = 12;
double i = 17.9;
float j = 12.4f;
bool k = true;
Console.WriteLine("(int)i:{0}",(int)i);
Console.WriteLine("h.ToString():{0}\ti.ToString():{1}\tj.ToString():{2}\tk.ToString:{3}",h,i,j,k);
Console.WriteLine(Convert.ToString(12.562));
}
}
}
(int)i:17
h.ToString():12 i.ToString():17.9 j.ToString():12.4 k.ToString:True
12.562
-
常量
- 常量和變量的基本規(guī)則一致,只是常量一旦定義,則不會能再更改其值
- 常量通過關(guān)鍵字const實現(xiàn)
using System;
namespace CSharpBasic {
public class CSharp{
static void Main (String[] args) {
/*用戶輸入 */
Console.Write("Please enter a number : ");
Console.WriteLine(Convert.ToInt32(Console.ReadLine()));
/*常量 */
const int l = 12;
Console.WriteLine("const:{0}",l);
}
}
}
Please enter a number : 123
123
const:12
-
運(yùn)算符
- 算數(shù)運(yùn)算符
加:+ 減:- 乘:* 除:/ 取余:% 自增:++ 自減:-- - 關(guān)系運(yùn)算符
等于:== 不等于:!= 大于:> 大于等于:>= 小于:< 小于等于:<= - 邏輯運(yùn)算符
邏輯與:&& 邏輯或:|| 邏輯非:! - 位運(yùn)算符
按位與:& 按位或:| 按位取反:! 按位異或:^ 按位左移:<< 按位右移:>> - 賦值運(yùn)算符
= += -= *= /= %= <<= >>= &= ^= |= - 其他運(yùn)算符
sizeof():返回數(shù)據(jù)類型的大小
typeof():返回類的類型
&:占位符,返回變量的地址
*:指針
?::條件表達(dá)式
is:判斷對象是否為某一類型
as:強(qiáng)制轉(zhuǎn)換,轉(zhuǎn)換失敗也不拋異常 - 優(yōu)先級
-
判斷語句
if;else;else if;switch...case;?:
-
循環(huán)語句
while;for;foreach;do...while;break;continue