C# 01.06 类型转换

2022.01.29 / Microsoft Visual Studio 2022 / C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01._06_类型转换
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // (一)、自动类型转换

            // 例1:( int ---> double  类型兼容 )

            int a = 6;  // 声明一个 int类型 的 变量a
            double b = a;  // 将 int类型 的 变量a 赋值给 double类型 的 变量b
            Console.WriteLine(b);

            // 理解:
            // 1、由于 int类型 和 double类型 均为 值类型 ,相互兼容,因此可以转换。
            // 2、由于 double类型 的范围 比 int类型 的范围 更大,因此可以 自动 转换。
            // 3、转换过程没有任何提示,所以被称为“自动”,也称为“隐式类型转换”。



            // (二)、强制类型转换

            // 语法:
            //      (目标类型)待转换的值或变量

            // 例2:( double ---> int  类型兼容 )

            double c = 3.1415926;  // 声明一个 double类型 的 变量c
            int d = (int)c;  // 将 double类型 的 变量c 强制 转换成 int类型,并赋值给 int类型 的 变量d
            Console.WriteLine(d);

            // 理解:
            // 1、由于 int类型 和 double类型 均为 值类型 ,相互兼容,因此可以转换。
            // 2、由于 int类型 的范围 比 double 类型 的范围 更小,因此 不能 自动 转换,必须执行 强制 转换。
            // 3、转换须由特定代码执行,过程可感知,所以被称为“强制”。也称为“显式类型转换”。



            // (三)、Convert转换

            // 语法:
            //     Convert.To目标类型(待转换的值或变量);

            // 例3:( int <===> string 或 double <===> string  类型不兼容 )

            int num_1 = 7;  // 声明一个 int类型 的 变量num_1
            string str_1 = Convert.ToString(num_1);  // 将 int类型 的 变量num_1 赋值给 string类型 的 变量str_1
            Console.WriteLine(str_1);

            double num_2 = 2.718281828459045;  // 声明一个 double类型 的 变量num_2
            string str_2 = Convert.ToString(num_2);  // 将 double类型 的 变量num_2 赋值给 string类型 的 变量str_2
            Console.WriteLine(str_2);

            string str_3 = "9527";  // 声明一个 string类型 的 变量str_3
            int num_3=Convert.ToInt32(str_3);  // 将 string类型 的 变量str_3 赋值给 int类型 的 变量num_3
            Console.WriteLine(num_3);


            // 错例:

            // string str_4 = "abc";  // 声明一个 string类型 的 变量num_2,值为“abc”
            // int num_4 = Convert.ToInt32(str_4);  // “abc” 无法 通过Convert命令 转换成 int类型,程序会报错
            // Console.WriteLine(num_4);



            // 关于Convert.ToInt16() / Convert.ToInt32() / Convert.ToInt64()

            // Convert.ToInt16()能转换的数值范围为 -32768 ~ +32767
            // Convert.ToInt32()能转换的数值范围为 -2147483648 ~ +2147483647
            // Convert.ToInt64()能转换的数值范围为 -好大好大一个数 ~ +好大好大一个数
            // 所以,根据实际要转换的数值来选择就行了。
            // 一般选32吧,因为16在取值前可能没超出范围,但在经过一系列计算后有可能就超出范围了。




            // 人生的乐趣,就在于不停地左右横跳。。。
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值