浅析C# 函数的传值与传址
作者:野性狼心 发布时间:2023-11-22 04:46:57
标签: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();
}
}
}
来源:https://www.cnblogs.com/qq450867541/p/5977689.html
0
投稿
猜你喜欢
- c#调用surfer软件,添加应用的方法:1.在项目文件上右键->添加引用2.选择COM标签页3.找到Surfer 9 type li
- using System;using System.Collections.Generic;using System.IO;using Sy
- 本文实例讲述了Android编程设置屏幕亮度的方法。分享给大家供大家参考,具体如下:使用场景最近在研究AndroidL Settings的代
- Java定义Long数据类型Long lg=10L;只需要在定义的的整型后面加个L;就和定义float数据类型一样Float ft=5.20
- Collection继承、实现关系如下(说明(I)表示接口, (C)表示Java类,<--表示继承,<<——表示实现):(
- 一、项目目录即一个空项目里,有两个springboot的Module。当需要修改kuangshen-es-api这个Module的jdk版本
- 上一章节回顾:Netty分布式源码分析监听读事件概述pipeline, 顾名思义, 就是管道的意思, 在net
- 需求背景接到这样一个需求,需要在 WebView 的所有网络请求中,在请求的url中,加上一个xxx=1的标志位。例如 http:
- @RequestBody与post请求的关系@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)
- Android CalendarView,DatePicker,TimePicker,以及NumberPicker的使用简单复习
- 记录一下在项目中用纯 YML(application.yml 或者 application.properties)文件、Java 代码配置
- 一、基本特点1. 开始时是乐观锁, 如果锁冲突频繁, 就转换为悲观锁.2. 开始是轻量级锁实现, 如果锁被持有的时间较长, 就转换成重量级锁
- 一、首先看下支付宝上芝麻信用分的效果图:二、思路 1、确定雷达图中心点坐标 &nb
- 闲来无事想玩玩双向通信,实现类似QQ的互发消息的功能。于是乎开始学习.Net Remoting..Net Remoting 是由客户端通过R
- Cookie1. 概念是服务器通知客户端保存键值对的一种技术。cookie 是 servlet(服务器) 发送到 Web 浏览器(客户端)的
- 队列在编程语言中是如何定义的呢?小编与大家分享自己的经验。队列的定义队列是限制结点插入操作固定在一端进行,而结点的删除操作固定在另一端进行的
- 问题学习完maven后,用maven创建了一个web项目,然后在这个web项目中创建了一个java文件夹并标记这个目录为源码根目录,当我准备
- 本文实例讲述了Android编程实现播放视频的方法。分享给大家供大家参考,具体如下:播放视频文件其实并不比播放音频文件复杂,主要是使用 Vi
- 继续练习自定义View。。毕竟熟才能生巧。一直觉得小米的时钟很精美,那这次就搞它~这次除了练习自定义View,还涉及到使用Camera和Ma
- 使用try-with-resource机制关闭连接JAVA的一大特性就是JVM会对内部资源实现自动回收即自动GC,给开发者带来了极大的便利。