C#基本数据类型的类型转换 及占位符 C#学习杂记(二)

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()的简化。

猜你喜欢

转载自blog.csdn.net/qq_40385747/article/details/108863473