zoukankan      html  css  js  c++  java
  • C# 之值类型与引用类型参数[基础]

    根据参数类型和传递方式,有以下4种不同的情况:
    值类型参数的按值传递;                    (int m)
    引用类型参数的按值(地址值)传递;  (string str)
    值类型参数的按引用传递;                (ref int m)
    引用类型参数的按引用传递;            (ref string str)

    值类型与引用类型参数
    class Demo
        {
            
    static void Main(string[] args)
            {
                
    int n = 100;
                
    string str = "One";

                ChangeByValue(
    ref n);  //  值类型:ref 传递的是变量 n 的地址(即:值类型的地址)
                ChangeByRef(ref str);  //引用类型:ref 传递的是变量 str 的地址(即:引用的引用)

                Console.WriteLine(n);
                Console.WriteLine(str);
            }
            
    private static void ChangeByValue(ref int m)
            {
                m 
    = 200;  //实际上改变的是变量 n 的值
            }
            
    private static void ChangeByRef(ref string s)
            {
                s 
    = "Two";
            }

            
    //通过,参数带ref(或out),与不带ref(或out)的方法能实现方法的重载
            private static void ChangeByRef(string s)
            {
                s 
    = "Two";
            }

            
    // 报错:不能定义仅在 ref 和 out 上有差别的重载方法。
            
    // 原因:在MSIL中, ref 和 out 是同一类型。
         /* private static void ChangeByRef(out string s)
            {
                s = "Two";
            }
         
    */ 
        }


  • 相关阅读:
    基础字段及选项2(11)
    模型层及ORM介绍(9)
    Luogu [P3367] 模板 并查集
    Luogu [P1958] 上学路线_NOI导刊2009普及(6)
    Luogu [P3951] 小凯的疑惑
    Luogu [P2708] 硬币翻转
    Luogu [P1334] 瑞瑞的木板(手写堆)
    一步步学习如何建立自己的个性博客~~
    Android初学者—listView用法
    SQLite命令—对表插入和修改等操作
  • 原文地址:https://www.cnblogs.com/xugang/p/1712845.html
Copyright © 2011-2022 走看看