• .Net中引用类型按值参数引用的问题


    .net 中方法参数的参数特性为值参数,实际传入的为引用类型(特殊引用类型String除外,但是字符串数组包括在内,因为数组是引用类型)时,方法体可以改变引用对象的数据成员,但是不能改变引用对象本身。

    如果参数特性为引用参数,不管传入的是值类型还是引用类型,方法体将会改变引用对象的数据成员,也可以改变引用对象本身。

     请看以下代码:

        class Program
        {
            
    static void Main(string[] args)
            {
                
    int[] I1 = new int[1] { 1 };
                ChangI1(
    ref I1);
                
    //I1[0]=199;

                
    int[] I2 = new int[1] { 1 };
                ChangI2(I2);
                
    //I2[0]=199;

                
    int[] I3 = new int[1] { 1 };
                ChangI3(I3);
                
    //I3[0]=1000;         
            }
     

            
    static void ChangI1(ref int[] i)
            {
                i[
    0= 1000;
                i 
    = new int[1] { 199 };
             }

            
    static void ChangI2(int[] i)
            {
               i 
    = new int[1] { 199 };
            }


            
    static void ChangI3(int[] i)
            {
                i[
    0= 1000;
                i 
    = new int[1] { 199 };
            }
        }
  • 相关阅读:
    c++ 堆和栈的区别 ,sizeof详解以及sizeof与strlen的区别,memset和fill的比较 木
    python 好文收集 木
    codeforces 285 D Permutation Sum (状态压缩DP) 木
    ural 1133. Fibonacci Sequence 木
    pythyon 集合和字典 2.7 木
    python 栈和队列 排序 初级数据结构 木
    【考试总结】20220321
    【考试总结】20220315
    【2022March】杂题乱写
    Codeforces1365G Secure Password
  • 原文地址:https://www.cnblogs.com/liaohuqiu/p/1683305.html
Copyright © 2020-2023  润新知