|
主题设置

卡片式面板通常用于非白色背景色的主体内

值类型

值类型(value types)数据长度固定,存放于栈内,其存放的是真正的数值。

整数类型

类型 描述 范围 默认值
sbyte 8 位有符号整数 -128 到 127 0
short 16 位有符号整数(两个 short 类型的数相乘,返回的是 int 型,因为结果可能大于 32767) -32768~32767 0
int 32 位有符号整数
  • int i = 0; // 声明 int 型变量 i,并初始化
  • int ? i = null; // int 型变量不能赋空值,否则会报错,只有这样声明才不会报错
-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
byte 8位无符号整数 0 到 255 0
ushort 16 位无符号整数 0 到 65,535 0
uint 32 位无符号整数

可以在字面值后面添加后缀,来指定想要的类型:

  • 100U // uint
0 到 4,294,967,295 0
ulong 64 位无符号整数

可以在字面值后面添加后缀,来指定想要的类型:

  • 100UL // ulong
0 到 18,446,744,073,709,551,615 0

浮点类型

浮点类型中,只有 float 能隐式转换成 double,另外 decimal 与 float、double 之间不能隐式转换。

类型 描述 范围 默认值
float 32 位单精度浮点型(给 float 类型赋值小数,会默认转成 double,需要在小数后面加后缀,比如:float = 1.1F,这样才能正确声明一个 float 类型的变量) -3.4 x 1038; 到 + 3.4 x 1038 0.0F
double 64 位双精度浮点型 (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 0.0D
decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 到 7.9 x 1028) / 100 到 28 0.0M

字符类型

字符类型用于表示单个 Unicode 字符,占用 2 个字节(16 位),能表示从 U+0000 到 U+FFFF 范围内的字符。

字符用单引号 ' ' 包围,例如,char letter = 'A'; 。

转义字符

转义字符 含义 Unicode值
\' 单引号 0x0027
\" 双引号 0x0022
\\ 反斜杠 0x005C
\0 空字符 0x0000
\a 警告
\b 退格符
\f 换页符
\n 换行符
\r 回车符 0x000D
\t 水平制表符
\v 垂直制表符
'\u0022' + "hello" + '\u0022',最终的结果就是 "hello",\u0022 就代表双引号,0x 用 \u 代替。

字符串转 Unicode

// 获取剪贴板里的内容
string pastTest = Clipboard.GetText();
char[] charbuffers = pastTest.ToCharArray();
byte[] buffer;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < charbuffers.Length; i++)
{
	buffer = System.Text.Encoding.Unicode.GetBytes(charbuffers[i].ToString());
	sb.Append(String.Format("\\u{0:X2}{1:X2}", buffer[1], buffer[0]));
}
MessageBox.Show(sb.ToString());

char 方法

char.IsWhiteSpace(cha);		// 判断字符是不是空格
char.IsLetter(cha);			// 判断是不是字母(中文也属于字母)
char.IsDigit(cha);			// 判断是不是数字
char.IsLetterOrDigit(cha);	// 判断是不是字母或数字(中文也属于字母)
char.IsLower(cha);			// 判断是不是小写字母
char.IsUpper(cha);			// 判断是不是大写字母
char.IsPunctuation(cha);	// 判断是不是标点
char.IsSeparator(cha);		// 判断是不是分隔符
char.ToLower(cha);			// 转为小写字母
char.ToUpper(cha);			// 转为大写字母

布尔类型

bool 类型通常用于逻辑判断和控制程序的流向,只有两个可能的值:true(真)和 false(假)。

结构类型

结构与类相比,具有以下优点:

  • 结构占用栈内存,对其操作的效率要比类高。
  • 结构在使用完后能够自动释放内存分配。
  • 结构很容易复制,只需要使用等号就可以把一个结构赋值给另一个结构。

定义结构类型

public struct Student
{
	public long sid;			// 学号
	public string firstName;	// 名
	public string lastName;		// 姓
	public double score;		// 成绩
	
	// 定义方法(结构中的方法不能包含 static 关键字)
	public string GetName()  // 
	{
		return firstName+" "+lastName;
	}
}

使用结构类型

Student mystudent;
mystudent.firstName="John";
mystudent.lastName="Franklin";
Console.WriteLine(mystudent.GetName());

枚举类型

枚举其实是一个整数类型,用于定义一组基本的整数数据,并可以给每个整数指定一个便于记忆的名字。

枚举类型默认是 static 的,所以不能用 static 修饰。

public enum Week
{
	Sunday=0,	//这里是逗号,不是分号
	Monday=1,
	Tuesday=2,
	Wedensday=3,
	Thursday=4,
	Friday=5,
	Saturday=6
}
枚举的基本类型可以是 byte、sbyte、short、ushort、int、uint、long、ulong,每个值都会根据定义的顺序(从 0 开始),被自动赋予对应的基本类型值,比如 value1 的值是 0,value2 的值是 1,value3 的值是 2……

null 类型

不能为整数类型、浮点类型、布尔类型的变量赋值 null。

string str = "hello world";
str = null;		// 在设置 str 为 null 后,str 里的内容就全部被清空了。