数据类型 - 基本类型
- 8种整数类型
- 2种用于科学计算的服点类型
- 1种金融计算浮点类型
- 1种布尔类型
- 1种字符类型
除了基本类型外,还有复合类型。
基本类型概括
- 整数类型中,最常用的为int和long。
- 浮点类型中,分为float和double。
- 金融计算用decimal。
字面值有一个默认类型:整数int,小数double。
- 科学计数法
int a = 2E2; //200
int b = 0xff; //255
- 布尔类型
bool isCool = true;
- 字符类型
char ch = ‘1’;
C、C++、C#中单双引号是有差别的。
string
- 关于转义字符
char ch = ‘123\n123’; //回车
- 字符串string可以嵌入转义符,关于@
string str = @“F:\ABC\BCD\abc.txt”;
- string的不可变性:返回一个新字符串。
WriteLine(str); //abc
str.ToUpper();
WriteLine(str); //abc
- string与StringBuilder差别
using System.Diagnostics;
…
Stopwatch timeRecorder = new Stopwatch();
timeRecorder.Start();
{
for(int i = 0; i < 10000; i++){
str += i.ToString();
}
} //572ms
{
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 10000; i++){
sb.Append(i.ToString());
}
} //2ms
timeRecorder.Stop();
Console.WriteLine(timeRecorder.ElapsedMilliseconds);
因此大量字符串修改适用于StringBuilder。
类型的分类
string str = null; //与“”并不同。
string.Empty; //与null不同。
- 可空类型
对于数据库支持null,而语言不支持,可以如下操作。
int? number = null;
自动判断数据类型(隐式类型),用var。
var number = 1;
数据类型的转换
- 显示转换,从高到低
int a = 1;
long b = 111111111111;
a = (int)b;
- MaxValue为例,溢出
checked{
int a = int.MaxValue;
a = a + 1;
} // Overflow
-
隐式转换,从低到高,不用管
-
Parse()
var str1 = Console.ReadLine();
var str2 = Console.ReadLine();
int a1 = int.Parse(str1);
int a2 = int.Parse(str2);
- TryParse()
int a;
if (int.TryParse(str1, out a)){
Console.WriteLine(a1);
}else{
Console.WriteLine(“解析失败!”);
}