浅析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();
}
}
}
来源:https://www.cnblogs.com/qq450867541/p/5977689.html
标签:c#,函数,传值,传址
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
学习Java设计模式之观察者模式
2023-07-03 05:17:46
![](https://img.aspxhome.com/file/2023/1/66541_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/6/137406_0s.png)
Intellij IDEA 2019 最新乱码问题及解决必杀技(必看篇)
2023-12-04 18:30:02
![](https://img.aspxhome.com/file/2023/6/106156_0s.jpg)
Java的JNI快速入门教程(推荐)
2022-11-22 16:10:48
使用SpringMVC访问Controller接口返回400BadRequest
2023-06-05 00:14:01
C++实现俄罗斯方块源码
2023-06-27 23:49:14
![](https://img.aspxhome.com/file/2023/6/103096_0s.png)
关于Hibernate的一些学习心得总结
2022-04-23 23:51:37
Android编程实现启动界面的方法分析
2022-02-18 14:25:27
![](https://img.aspxhome.com/file/2023/4/139364_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/5/125235_0s.jpg)
Android提高之BLE开发Android手机搜索iBeacon基站
2023-05-19 18:58:15
![](https://img.aspxhome.com/file/2023/7/137167_0s.gif)
Java实现对两个List快速去重并排序操作示例
2023-05-02 03:40:14
![](https://img.aspxhome.com/file/2023/7/71937_0s.png)
通俗易通讲解Android蓝牙键值适配
2022-06-19 07:50:34
![](https://img.aspxhome.com/file/2023/0/120100_0s.jpg)
VSCode 搭建 Arm 远程调试环境的步骤详解
2023-06-27 08:54:36
![](https://img.aspxhome.com/file/2023/8/104448_0s.png)
C#编程获取客户端计算机硬件及系统信息功能示例
2023-08-09 01:57:15