zoukankan      html  css  js  c++  java
  • C#里三种强制类型转换

    强制类型转换

    在C#中,我们可以看到三种强制类型转换,比如强制转换成有符号32位整型,可以找到下面三种方式:

    ① (int)()                ②Convert.ToInt32()         ③int.Parse()

    三种转变在有些数据时可以通用,但是用法上仍然有很大的区别

    (int)表示使用显式强制转换,是一种类型转换。当我们从 int 类型到 long、float、double 或decimal 类型,可以使用隐式转换,但是当我们从 long 类型到 int  类型转换就需要使用显式强制转换,否则会产生编译错误。

    Convert.ToInt32() 则可以将多种类型(包括 object  引用类型)的值转换为 int  类型,因为它有许多重载版本[2]:
        public static int ToInt32(object);
        public static int ToInt32(bool);
        public static int ToInt32(byte);
        public static int ToInt32(char);
        public static int ToInt32(decimal);
        public static int ToInt32(double);
        public static int ToInt32(short);
        public static int ToInt32(long);
        public static int ToInt32(sbyte);
        public static int ToInt32(string);

    Int32.Parse()表示将包含数字的字符串转换为32 位有符号整数,属于内容转换

        我们一种常见的方法:public static int Parse(string)。
        如果 string 为空,则抛出 ArgumentNullException 异常;
        如果 string 格式不正确,则抛出 FormatException 异常;
        如果 string 的值小于 MinValue 或大于 MaxValue 的数字,则抛出 OverflowException 异常。
     可以看出来,Convert.ToInt32() 的功能是最强大的,它把Int32.Parse()功能包括了,也是说是Int32.Parse()Convert.ToInt32() 的一种特殊情况。

    备忘:

    1.研究C#里的object引用类型,探究为什么有时候数据必须要转换成object,目前猜想,比如一个IP地址,如果真正要用到函数里或者要获取的时候可能它不属于字符串,也不属于其它类型,这时用object来把数据截取过来

  • 相关阅读:
    事物的五种传播机制与七种传播行为
    Spring jdbcTemplate
    SpriingMVC执行流程结构
    SpringMVC视图解析器
    promise的基本使用和理解
    集合set的类型转换
    数据结构小结一
    Dotween的一些常用方法记录
    线程与进程的解释
    反射和特性
  • 原文地址:https://www.cnblogs.com/pacexdong/p/11392469.html
Copyright © 2011-2022 走看看