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

作者:野性狼心 时间:2023-11-22 04:46:57 

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

来源:https://www.cnblogs.com/qq450867541/p/5977689.html

标签:c#,函数,传值,传址
0
投稿

猜你喜欢

  • 学习Java设计模式之观察者模式

    2023-07-03 05:17:46
  • FeignClient如何脱离eureka自定义URL

    2022-08-27 01:37:25
  • java io读取文件操作代码实例

    2023-04-12 08:53:57
  • C#获取两个时间的时间差并去除周末(取工作日)的方法

    2022-07-25 00:20:44
  • Android非异常情况下的Activity生命周期分析

    2022-10-29 04:06:12
  • Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)

    2023-12-04 18:30:02
  • Java的JNI快速入门教程(推荐)

    2022-11-22 16:10:48
  • 使用SpringMVC访问Controller接口返回400BadRequest

    2023-06-05 00:14:01
  • C++实现俄罗斯方块源码

    2023-06-27 23:49:14
  • 关于Hibernate的一些学习心得总结

    2022-04-23 23:51:37
  • Android编程实现启动界面的方法分析

    2022-02-18 14:25:27
  • c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析

    2023-04-07 03:43:25
  • Spring Boot如何防止重复提交

    2021-11-10 16:23:42
  • 通过实例解析java过滤器和拦截器的区别

    2022-12-21 05:02:45
  • 详解MybatisPlus中@Version注解的使用

    2023-11-09 23:49:17
  • Android提高之BLE开发Android手机搜索iBeacon基站

    2023-05-19 18:58:15
  • Java实现对两个List快速去重并排序操作示例

    2023-05-02 03:40:14
  • 通俗易通讲解Android蓝牙键值适配

    2022-06-19 07:50:34
  • VSCode 搭建 Arm 远程调试环境的步骤详解

    2023-06-27 08:54:36
  • C#编程获取客户端计算机硬件及系统信息功能示例

    2023-08-09 01:57:15
  • asp之家 软件编程 m.aspxhome.com