浅析C# 函数的传值与传址

编辑: admin 分类: c#语言 发布时间: 2022-01-18 来源:互联网

      传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有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?
      //因为外部定义的【文章来自:http://www.yidunidc.com/gfcdn.html 欢迎留下您的宝贵建议】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();
    }
  }
}

以上就是浅析C# 函数的传值与传址的详细内容,更多关于c# 函数传值与传址的资料请关注海外IDC网其它相关文章!