• C#中的参数传递


     方法的参数传递机制:
      1.值参数 (Value Parameter)
       方法名称 ( 参数类型 参数名称[,参数类型 参数名称] )
      2.引用参数 (Reference Paramter)
       方法名称 ( ref 参数类型 参数名称 [,ref 参数类型 参数名称] ) 
      3.输出参数 (Out Paramter) 
       方法名称 ( out 参数类型 参数名称[,out 参数类型 参数名称] )

    输出参数和引用参数的区别:

       从CLR的角度看,关键字out和关键字ref是等效的,也就是说,无论使用哪个关键字,都会生成相同的元数据和IL代码.但是C#编译器将两个关键字区别对待,在c#中,这两个关键字的区别在于哪个方法负责初始化引用对象.
     
       <1>若是使用的out关键字,那么调用者不希望在调用方法之前初始化对象,被调用的方法不能读取对象的值,而且被调用的方法必须在返回之前为对象赋值.
       <2>若是使用的ref关键字,那么调用者必须在调用方法之前首先初始化参数的值,被调用的方法可以读取参数或为参数赋值.

    例:

    1.值参数、引用参数、输出参数的方法调用:

    2.向方法传递可变数量的参数:使用params关键字

     3.对比值类型和引用类型:

                                  值类型                             引用类型
     
     变量中存放的       真正的数据                       指向数据的引用指针
      
     内存空间分配       堆栈(Stack)                      托管堆(Managed Heap)

     内存需求            一般较小                             较大

     执行效能              较快                               较慢
     
     内存释放时间点    执行超过定义变量的作用域          由回收站负责回收

     可以为null         不可以为null                          可以为null

  • 相关阅读:
    MySQL中删除重复数据只保留一条
    js 的try catch应用
    jQuery中on()方法用法实例
    js老生常谈之this,constructor ,prototype
    spring自定义标签之 规范定义XSD
    jquery jgrid filterToolBar beforeSearch 修改postData
    Guava学习笔记:Optional优雅的使用null
    Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方
    Druid SQL 解析器概览
    访问者模式
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/2341249.html
Copyright © 2020-2023  润新知