1、隐式转换
低精度数据类型转换为高精度类型,将自动进行隐式转换,不需要使用任何方法。
//int类型转换为float类型,进行隐式转换
int a = 521412341;
float f = a;
//byte类型转换为int类型,进行隐式转换
byte by = 220;
int aa = by;
2、强制转换
//强制转换
float a = 1;
int b = (int)a;//需要加上(int)括号加强转类型
int i = 2;
byte by = (byte)i;
(string 转 int)如果是在数字和字符串之间进行转换,需要调用Parse()方法,且需要满足条件:字符串是由数字组成,如下
string str = "123";
int s = int.Parse(str);
如果是下面的情况则会抛出异常
string str1 = "edmoijoi";
int ii = int.Parse(str1);
(string 转 char)如果是字符串转字符类型,也需要调用Parse(),且需要满足:字符串只由一个字符组成,否则会报错
string str2 = "s";
char c = char.Parse(str2);
任意类型转换为字符串(string)类型,都只需要调用 Tostring()方法即可
char ch = 'w';
string str3 = ch.ToString();
int j = 456;
str3 = j.ToString();
值得注意的一点,在使用强制转换处理char类型和int类型时,会将char类型转换为ASCII码,或者将int类型当做ASCII码,如下
char ch1 = '5';
int ch2 = (int)ch1;
Console.WriteLine(ch2);//输出结果是 53, 是5 的ASCII码值
int ch3 = 53;
char ch4 = (char)ch3;
Console.WriteLine(ch4);//输出结果是 5, ASCII码值53对应的数字5
3、convert转换
还有一种就是使用convert类提供的方法进行强制转换。
Int64 j = 4;
int j1 = Convert.ToInt32(j);//转换为整形(int)
char j2 = Convert.ToChar(j);//转换为字符型(char)
string j3 = Convert.ToString(j);//转换为字符串型(string)
float j4 = Convert.ToSingle(j);//转换为单精度浮点型(float)
string h = "2020-09-29 13:42:55";
DateTime k = Convert.ToDateTime(h);//转换为日期型,注意参数必须是日期格式
值得注意的是,使用Convert.ToInt32()进行转换的时候,如果传入参数4.5,那么会得到整数4,如果是4.51,那么会得到整数5,也就是说大于4.5会得到5,小于或者等于4.5会得到4
4、占位符
假如需要输出某人多少岁,可用“+”号拼接
string name = "可乐";
int age = 3;
Console.WriteLine(name + "今年" + age + "岁");
频繁的用“+”号和“”双引号就比较麻烦,而且容易写错,如果使用占位符就简便得多
string name = "可乐";
int age = 3;
Console.WriteLine("{0}今年{1}岁", name, age);//第一种
Console.WriteLine($"{name}今年{age}岁");//第二种
$占位符的写法,其实是string.format()的简化。