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

 更新时间:2020年11月27日 09:58:57   作者:野性狼心  
这篇文章主要介绍了C# 函数的传值与传址,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下

      传值就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有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();
    }
  }
}

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

相关文章

  • 详解C# 虚方法virtual

    详解C# 虚方法virtual

    这篇文章主要介绍了C# 虚方法virtual的相关资料,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • 使用C#实现Windows组和用户管理的示例代码

    使用C#实现Windows组和用户管理的示例代码

    这篇文章主要介绍了使用C#实现Windows组和用户管理的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

    C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

    这篇文章介绍了C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 简单学习C#中的泛型方法使用

    简单学习C#中的泛型方法使用

    这篇文章主要介绍了C#中的泛型方法使用,需要的朋友可以参考下
    2016-02-02
  • C#调用Rar文件及获取Rar返回值的方法

    C#调用Rar文件及获取Rar返回值的方法

    这篇文章主要介绍了C#调用Rar文件及获取Rar返回值的方法,实例分析了C#调用rar文件实现文件的压缩与解压相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#使用反射机制实现延迟绑定

    C#使用反射机制实现延迟绑定

    这篇文章介绍了C#使用反射实现延迟绑定的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#实现数据导出任一Word图表的通用呈现方法

    C#实现数据导出任一Word图表的通用呈现方法

    应人才测评产品的需求,导出测评报告是其中一个重要的环节,报告的文件类型也多种多样,其中WORD输出也扮演了一个重要的角色,本文给大家介绍了C#实现数据导出任一Word图表的通用呈现方法及一些体会,需要的朋友可以参考下
    2023-10-10
  • C#使用正则表达式实现常见的格式验证

    C#使用正则表达式实现常见的格式验证

    这篇文章主要为大家详细介绍了C#如何使用正则表达式实现常见的格式验证,例如:电话号码、密码、邮编等,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • c#求范围内素数的示例分享(c#求素数)

    c#求范围内素数的示例分享(c#求素数)

    问题是判断101-200之间有多少个素数,并输出所有素数。下面是使用C#解决这个问题的方法 ,需要的朋友可以参考下
    2014-03-03
  • C#使用Exchange实现发送邮件

    C#使用Exchange实现发送邮件

    最近项目中需要用到exchange的操作,所以本文就参照msdn弄了一个简单的C#操作类,实现了发送邮件和拉取收件箱的功能,感兴趣的小伙伴可以了解下
    2023-10-10

最新评论