C# - 数据类型
基础类型
- 值类型[Value types] - 布尔型
数据类型 | 描述 | 默认值 |
bool | 布尔值,True 或 False | False |
- 值类型[Value types] - 整数型
数据类型 | 描述 | 默认值 |
byte | 8位无符号整数[0~255] | 0 |
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 |
- 值类型[Value types] - Char型
数据类型 | 描述 | 默认值 |
char | 16 位 Unicode 字符[U +0000 到 U +ffff] | '\u0000' |
- 值类型[Value types] - 浮点型
数据类型 | 描述 | 默认值 |
decimal | 128 位精确的十进制值,28-29 有效位数[(-7.9 x 1028 到 7.9 x 1028) / 100 到 28] | 0.0M |
float | 32 位单精度浮点型[-3.4 x 1038 到 + 3.4 x 1038] | 0.0F |
double | 64 位双精度浮点型[(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308] | 0.0D |
- 引用类型(Reference types)
数据类型 | 描述 | 默认值 |
object | 对象(Object)类型 | Null |
dynamic | 动态(Dynamic)类型 | Null |
string | 字符串(String)类型 | Null |
- 时间类
数据类型 | 描述 | 默认值 |
DateTime | 日期类型 | 0001-01-01T00:00:00 |
单问号? -> 可空类型
? 单问号用于对 int、double、bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 Nullable 类型的。
int? i = 3; -> Nullable<int> i = new Nullable<int>(3);
int i; //默认值0
int? ii; //默认值null
双问号?? -> 合并运算符
double? num1 = null;
double? num2 = 3.14157;
double num3;
num3 = num1 ?? 5.34; // num1 如果为空值则返回 5.34
代码及结果
using System; using System.Collections.Generic; using System.Text; namespace BasicsDataType { /// <summary> /// 数据类型 /// </summary> public class BasicsDataTypeInfo { /*----------------------------------------------- 值类型[Value types] ----------------------------------------------------------*/ /*---------------------------- 布尔型 -------------------------*/ /// <summary> /// 布尔型[True / False] 默认值[False] /// </summary> public bool BBool { get; set; } /*---------------------------- 整数型 -------------------------*/ /// <summary> /// 8位无符号整数[0~255] 默认值[0] /// </summary> public byte BByte { get; set; } /// <summary> /// 32 位有符号整数类型[-2,147,483,648 到 2,147,483,647] 默认值[0] /// </summary> public int BInt { get; set; } /// <summary> /// 64 位有符号整数类型[-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807] 默认值[0L] /// </summary> public long BLong { get; set; } /// <summary> /// 8 位有符号整数类型[-128 到 127] 默认值[0] /// </summary> public sbyte BSByte { get; set; } /// <summary> /// 16 位有符号整数类型[-32,768 到 32,767] 默认值[0] /// </summary> public short BShort { get; set; } /// <summary> /// 32 位无符号整数类型[0 到 4,294,967,295] 默认值[0] /// </summary> public uint BUInt { get; set; } /// <summary> /// 64 位无符号整数类型[0 到 18,446,744,073,709,551,615] 默认值[0] /// </summary> public ulong BULong { get; set; } /// <summary> /// 16 位无符号整数类型[0 到 65,535] 默认值[0] /// </summary> public ushort BUShort { get; set; } /*---------------------------- Char型 -------------------------*/ /// <summary> /// 16 位 Unicode 字符[U +0000 到 U +ffff] 默认值['\u0000'] /// </summary> public char BChar { get; set; } /*---------------------------- 浮点型 -------------------------*/ /// <summary> /// 128 位精确的十进制值,28-29 有效位数[(-7.9 x 1028 到 7.9 x 1028) / 100 到 28] 默认值[0.0M] /// </summary> public decimal BDecimal { get; set; } /// <summary> /// 64 位双精度浮点型[(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308] 默认值[0.0D] /// </summary> public double BDouble { get; set; } /// <summary> /// 32 位单精度浮点型[-3.4 x 1038 到 + 3.4 x 1038] 默认值[0.0F] /// </summary> public float BFloat { get; set; } /*----------------------------------------------- 引用类型(Reference types) ----------------------------------------------------------*/ /// <summary> /// 对象(Object)类型 默认值[null] /// </summary> public object BObject { get; set; } /// <summary> /// 动态(Dynamic)类型 默认值[null] /// </summary> public dynamic BDynamic { get; set; } /// <summary> /// 字符串(String)类型 默认值[null] /// </summary> public string BString { get; set; } /*----------------------------------------------- 日期类型 ----------------------------------------------------------*/ /// <summary> /// 日期类型 默认值[0001-01-01T00:00:00] /// </summary> public DateTime BDateTime { get; set; } } }