• C#-函数的传值与传址


    转 https://www.cnblogs.com/qq450867541/p/5977689.html

      传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等。

          传址就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传址的有数组和字符串string。

          上面说的就牵扯到数据的分类,分为值类型和引用类型,值类型的就是传值的那种,引用类型包括字符串类型,数组和对象,字符串类型特殊,主要是因为字符串实际上是一个字符char[]数组,它在修改的时候并不是直接修改,而是新开辟了一个存储空间也就是建立了一个新的字符串,所以它在调用、赋值的using System;

    复制代码
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    namespace _1019传值传址
    {
        class Program
        {
            //一、传值-将变量的值传入函数中
            public void Qiuhe(int a)
            {
                int b = a + 10;
                Console.WriteLine(b);
            }
    //
    //写个函数,传值进去,传姓名、性别、年龄进去
    //将年龄+10岁,
            //return反馈回来 split分割
            public string Fanhui(string name, string sex, int age)
            {
                age += 10;
                return name + "-" + sex + "-" + age;
            }
    
            //三、out传址-仅仅将变量名带入函数,不考虑参数值,out自动默认return
            public void Fanhui1(int a,out int b)
            {
                b = a + 10;
            }
    
            static void Main(string[] args)
            {
                //调用函数之前需要先初始化、实例化该Class类
                Program Hanshu = new Program();
    
                //一、传值-将变量的值传入函数中
                int a = 5;
                int b = 10;
                Hanshu.Qiuhe(a);
                Console.WriteLine(b);
    //最后输出b结果为10,为什么不是5+10=15? //因为外部定义的int b 与内部定义的int b 不是同一个b ,仅仅是用了同一个字母来表示而已

    //二、一个函数只能返回一个值,将函数返回的值用split进行分割后放入一维数据获取多个值 string ss = Hanshu.Fanhui("张三", "", 33); string[] xx = ss.Split('-'); for (int i = 0; i < 3; i++) { Console.WriteLine(xx[i]); }
    //三、out传址
                int aa = 5;
                int bb = 10;
                Hanshu.Fanhui1(aa, out bb);
                Console.WriteLine(bb);
                //传址:将这个变量名直接传输过去,若在另一边有赋值情况,这个变量名将变化
                Console.ReadLine();
            }
        }
    }
    复制代码
  • 相关阅读:
    10,EasyNetQ-发布确认
    9,EasyNetQ-版本化消息
    一个小程序云开发的项目,图书借还系统
    利用canvas对图片进行切割
    微信小程序添加卡券到微信卡包,使用wx.addCard()方法传参及整体流程
    git合并时忽略某个文件
    小程序接入云通信IM
    小程序插件使用wx.createSelectorQuery()获取不到节点信息
    小程序插件开发流程及注意事项
    小米6使用charles抓包https
  • 原文地址:https://www.cnblogs.com/wl-blog/p/13187644.html
Copyright © 2020-2023  润新知