zoukankan      html  css  js  c++  java
  • 2018-7-20-随笔-转换

    转换:

    1.转换只是把源值作为目标类型使用而已,被没有改变,源值还是不变的。换个类型使用而已

    2.在“隐式转换”中,对于无符号的类型有个“零扩展”,就是没有的位置用0来填充。 还有一个就是“符号扩展”,这是对有符号的类型,正数用0,负数用1填充。一般都是从右边开始对齐,左边不够的位数填充,多余的就会被丢失的。

    3.在数据可能会丢失的情况下,系统不会自动的转换的,这是只能是“显式转换”---强制转换,在使用这个时候,就默认你会承担丢失数据的风险了。


    转换的类型:1.预定义:数字(隐式、显式),装箱、拆箱,引用(显式、隐式)

          2.用户自定义(隐式、显式)


    在数字转换中:整型-->整型、整型-->浮点型、整型-->decimal--------这些是隐式转换,其余的都是显式转换  无符号转换为有符号的都是隐式转换,切记char算是无符号-ushort

    4.溢出检测上下文:checked(关系式)、unchecked(关系式),前者可检测是否溢出并在溢出是抛出异常(CLR抛出),后者不会抛出异常,不管溢出-------他们不仅可以实现对单表达式的检测,还可以对一个代码块进行检测,并且还是对代码块中的每一步转换进行检测。

    5.在数字的显式转换中,很多都有溢出的可能,所以用checked或者unchecked进行检测,不是一定的溢出,如果在对应的范围内,不会出现溢出现象的。

    6.引用转换:1).隐式转换:所有的引用类型都可以转换为object类型,任何类型都可以转换到它继承的接口,类可以转换为继承的类和实现的接口  是一种具体到抽象的过程----理解

          2).显示转换:object都可以转换为任何的引用类型,基类可以转换为继承它的类。一个普通类转成更精确的类  如果不受限制可以转换任何类,就会出现异常。

    例如:类A,派生类B,A对象显示的转换成B对象,这样的转换是无效的,编译不错,但是会运行异常的。

          3).有效的显示转换:显示转换没必要、源引用是null、源引用被安全的隐式转换过。

    7.装箱转换:是一种隐式转换,把一个类型,包括值类型,转换成引用类型(object)装箱只是创建一个副本,源值和副本可以分开的操作,互不影响。要想转换成接口,要先实现

    8.拆箱转换:是一种显式转换,要把系统的值转换为原始类型,否则就会抛出异常       显式的转换----用的就是强制转换

    9.用户自定义转换:只可以对类和结构进行自定义转换,不能重定义标准转换,两个类型不能有继承关系,不能是接口,不能是object类型,转换符合必须是类的成员。

    理解:用户的自定义转换,就是一个类或者结构,转换成一个常见的类型--值类型(只是说一种常见的),两者的关系要有,在类中要有和值类型相似的成员,这样才可以转换成功。因为要返回的都是对应类型的数据。在用显式转换时候,要注意用强制转换才能进行转换成功。

    模板:public static implicit/explicit operator (要转换的类型)(源类型  参数)

    {

    return : 和要转换的类型一样的数据;

    }

    10.用户自定义转换的评估:标准---自定义--标准  如果有个子类到父类是标准,int 到 float是标准,在父类中有转换,所以子可以转换成 float 三步都有!!!

    11.is 运算符只可以用 引用转换以及装箱、拆箱转换,返回的是bool类型值,判断是否可以转换,然后再操作。

    12.as运算符只能用在引用转换和装箱转换, 返回的都是引用类型------类引用,接口引用、结构等....

  • 相关阅读:
    Mysql面对高并发修改的问题处理【2】
    HSF处理流程分析
    com.jcraft.jsch.JSchException: invalid privatekey
    linux常用命令
    VPS教程:VPS主机能PING通但是SSH无法连接
    Windows 和Linux 不同操作系统的VPS有哪些区别,如何选择?
    Windows VPS有哪些?
    VPS教程:搭建个人云笔记服务器
    VPS搭个人网盘,seafile、kodexplorer、h5ai谁更合适?
    VPS教程:搭建个人网盘—seafile
  • 原文地址:https://www.cnblogs.com/liuqifeng/p/9342670.html
Copyright © 2011-2022 走看看