zoukankan      html  css  js  c++  java
  • 如鹏网.Net高级技术3.值类型和引用类型

    .Net高级技术3.值类型和引用类型

    C#中哪些类型属于值类型,哪些类型属于引用类型,

    什么是装箱,什么是拆箱?

    了解结构体,ref和out使用。

    以上都是该段课程中需要掌握的内容。

    什么是值类型:值类型均隐式派生自System.ValueType   :类型 变量名=初始化值;

     int num=90; num.GetType().Basetype()

    值类型有哪些:数值类型、bool、结构、枚举查看IL,隐式继承自ValueType

    什么是引用类型:引用类型派生自System.Object

    引用类型有哪些:字符串、数组、类、接口等查看IL隐式继承自Object ;

     引用类型变量的赋值只复制对对象的引用。

    值类型变量赋值会拷贝一个副本。

    值类型只在栈中存储,引用类型的变量名是存储在栈内存中,new 对象存储在堆内存中。

    栈内存:值类型,变量名

    堆内存:new 类

    装箱和拆箱是怎么回事?前后类型必须一样

    IL 中 有box 就发生了装箱,有unbox就发生了拆箱

    有没有发生装箱,首先看有没有继承关系,int 和string之间没有继承类型

    装箱在值类型向引用类型转换时发生(两者有明确的继承关系)

    拆箱在引用类型向值类型转换时发生(两者有明确的继承关系)

    -------------------------------------------------

    结构体 :省空间可以使用。

    在没有面向对象、在没有类的情况下如何组织一些相关的数据?

    结构体: 一种值类型,拷贝副本。

    注意: 对于结构,不像类那样存在继承。一个结构不能从另一个结构或类继承。但是,结构从基类 Object 继承。

    结构只能实现接口,其方式同类完全一样;不能继承。

    结构体是值类型,传值的时候拷贝的是副本

    对于结构,不像类那样存在继承。

    一个结构不能从另一个结构或类继承。但是,结构从基类 Object 继承(有object类的方法)。

    结构可实现接口,其方式同类完全一样。

    结构体大家了解即可。

    -------------------------------------------------

     ref 和out使用:

    1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方, 而ref则用在需要被调用的方法修改调用者的引用的时候。

     ref :

      可以把值传到方法中,也可以把方法中的值返回来---〉可进可出的

      传入的参数必须先初始化。

    当参数个数 和类型一样时,只是ref 和 out 是不能构成重载的 。

    使用ref传参数的时候,传入的参数必须先被初始化。

    out:

      把方法中的值传出去,外面调用变量可以没有初始值。

    使用out传参数的时候,必须在方法中对其完成初始化。 

    使用ref和out时,在方法的参数和执行方法时,都要加ref或out关键字。以满足匹配。 

    out适合用在需要retrun多个返回值的地方,

    而ref则用在需要被调用的方法修改调用者的引用的时候。

      案例:

        int n;

        int.TryParse("sf",out n);

        Console.WriteLine(n); //0默认值

     

    如鹏网:http://www.rupeng.com

  • 相关阅读:
    验证码的编写 asp.net
    甲骨文收购Sun,IT业界进入三国时代
    动态加载css文件导致IE8崩溃的问题
    页面调试中关于Console应该注意的地方
    关于仿网易邮箱5.0的Neter UI框架的开源声明
    仿网易邮箱5.0(二):core.js
    仿网易邮箱5.0(三):panel.js
    仿网易邮箱5.0(一):页面基本样式
    Windows下配置Sass编译环境
    ASP+Access查询时按时间进行查询
  • 原文地址:https://www.cnblogs.com/wjs5943283/p/5242834.html
Copyright © 2011-2022 走看看