zoukankan      html  css  js  c++  java
  • 关于《函数调用关键字》记忆恢复本

    1.基本函数传参注意点

      参数可以通过引用或通过值传递给方法。在变量通过引用传递给方法时 ,被 调用的方法得到的

    就是这个变量 ,所 以在方法内部对变量进行的任何改变在方法退出后仍旧有效。而如果变量通过

    传送给方法 ,被调用的方法得到的是变量的 一 个相同副本 ,也 就是说 ,在 方法退出后 ,对 变量进行

    修改会丢失,也就是修改无效

    例如 ,

    a.int 通过值传递给方法 ,对 应方法对该 血 的值所做的任何改变都没有改变原 int对象的值。

    b.但如果把数组或其他引用类型 (如类) 递给方法 ,对 应 的 方法就会使用该引用改变这个

    数组中的值 ,而 新值会反射在原始数组对象上。

    注意字符串的行为方式有所不同 ,因 为字符串是不可变的,如果改变字符串的值 ,就 会创建 一 个

    全新的字符串 , 所以 字 符 串 无法采用 一般引用 类型的行为方式。在方法调角中 ,对 字符串所做的任

    何改变都不会影响原始字符串 。

      那么,有没有什么办法可以实现值类型调用完方法后也能改变值呢?那就是下面的ref 和out关键字

    2.ref关键字

      如前所述 ,通 过值传送变量是默认的 ,也 可以道使值参数通过引角传送给方法。为此 ,要 使用

    ref关 键字。如果把一 个参数传递给方法 ,且 这个方法的输入参数前带有 ref关 键字 ,则 该方法对变
    量所做的任何改变都会影响原始对象的值 :
    static void someFunction( intI] intarr ref int i)
    {
      ints[0]= 100;
      i = 100; // The change to i will persist after someFunction() exits.
    )
    在调用该方法时 ,还 需要添加 ref关 键字 :
    最后 ,C#仍要求对传递给方法的参数进行初始化 ,理 解这一点也非常重要。在传递给方法之前 ,
    无论是按值传递 ,还 是按引用传递 ;任 何变量都必须初始化

    3. out参数

      C#要求变量在被引用前必须用 一 个初值进行初始化。尽管在把输入变量传递给函数前 ,

    可 以用没有意义的值初始化它们 ,因 为函数将使用真实、有意义的值初始化它们 ,但 是这样做

    是没有必要的 ,有 时甚至会引起混乱。但有 一 种方法能够简化α编译器所坚持的输入参数的初始化。

    编译器使用 out关 键字来初始化。在方法的输入参数前面加上 out前缀时 ,传 递给该方法的变

    量可以不初始化。该变量通过引用传递 ,所 以在从被调用的方法中返回时 ,对 应方法对该变量进行

    的任何改变都会保留下来。在调用该方法时 ,还 需要使用 out关 键字 ,与 在定义该方法时 一 样

    4.可选参数
      参数也可以是可选的。必须为可选参数提供默认值。可选参数还必须是方法定义的最后 =个 参
    数。所以下面的方法声明是不正确的 :
    void TestMethod(int  ptionaNumber = 10,int notoptiona1Number)
    {.....}

    要使这个方法正常工作 ,就 必须在最后定义 notoptiona1Number参
    数。
    5.方法的重载
      C#支持方法的重载 一 — 方法的几个版本有不同的签名 (即 ,方 法名相同 ,但 参数的个数和 /或 类
    型不同 )。 为了重载方法 ,只 需声明同名但参数个数或类型不同的方法即可

    以上为函数快记录笔记,主要注意 1.基本函数传参注意点,2.ref关键字 和 3.out关键字

    WangDrama 

    2017-09-04

  • 相关阅读:
    javascript封装自定义滚动条方法,可自定义四个边框滚动条
    前端页面优化:javascript图片延迟加载
    VPS用LNMP安装WordPress
    结缘PDO
    Laravel踩坑笔记——illuminate/html被抛弃
    Android定时器实现方法[转]
    关于安装Android Studio的一些问题的解决方法
    nginx 多站点配置方法
    PHP5.6.x的新鲜事
    ThinkPHP学习手记——环境搭建
  • 原文地址:https://www.cnblogs.com/wangdrama/p/7474255.html
Copyright © 2011-2022 走看看