• c# 方法的參數傳遞機制


    一、參數的使用方法:
        1、值參數(Value Parameter )
            格式:方法名稱(參數類型 參數名稱[,參數類型 參數名稱])

        2、引用參數(Reference Parameter )
            格式:方法名稱(ref 參數類型 參數名稱[,ref 參數類型 參數名稱])

        3、輸出參數(Out Parameter)
            格式:方法名稱(out  參數類型 參數名稱[,out  參數類型 參數名稱])

    二、值參數與引用參數及輸出參數的區別:
        2.1 值參數中實參的值不隨形參值變更而變更;
              形參與實參值互不影響,實參傳遞給形參時,堆棧中就為其分配另外一部分空間。這樣,兩個參數變更時而互不影響。
        2.2 引用參數及輸出參數中實參的值會隨形參值變更而變更
             (形參:在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元.只有在发生函数调用时,函数中形参才被分配内存单元.在调用结束后,形参所占的内存单元也被释放。调用时将实参的值赋绐形参);
              引用參數與輸出參數中,實參在堆棧中分配空間。當實參傳遞給形參時,會將地址傳遞給形參,即傳送的時指針,這樣形參變更時,實參也會隨著變更。

    三、引用參數與輸出參數區別:
         3.1 使用ref與out參數時,方法中參數及調用參數都需要加Ref或out關鍵字
         3.2 使用ref參數與out參數得到的結果是一樣的,區別是:ref在調用前需給調用方法中的參數賦初值。out在調用前不需給調用方法中的參數賦初值,參數在實際方法體中初始化。

    四:查看代碼

    如:下面代碼中各個參數的結果:
    using System;
    class mahod
    {
        
    public static void ValueMethod(int i)
        {
            i
    ++;
        }
        
    public static void ReferenceMehtod(ref int i)
        {
            i
    ++;
        }
        
    public static void OutMethod(out int j)
        {
            j
    =0;
            j
    ++;
        }
        
        
    static void Main()
        {
            
    int i=0;
            ValueMethod(i);
            Console.WriteLine(
    "i="+i);
            
    int j=0;
            ReferenceMehtod(
    ref j);
            Console.WriteLine(
    "j="+j);
            
    int k;
            OutMethod(
    out k);
            Console.WriteLine(
    "k="+k);
            
            Console.ReadLine();
        }
    }


  • 相关阅读:
    将一个dropdownlist从一个div复制到另一个div
    【转】AOP 那点事儿(续集)
    【转】AOP 那点事儿
    spring 简单配置
    spring 基础原理
    jvm简介
    jre、jdk和jvm的关系
    【转】Jvm工作原理
    servlet简述
    Filter简述
  • 原文地址:https://www.cnblogs.com/scottckt/p/1140752.html
Copyright © 2020-2023  润新知