当前位置: 首页 > news >正文

C#初级——方法/函数(ref 和 out关键字)(引用传参和输出传参)

ref关键字

ref是引用的方式传递参数,参数必须初始化。也就意味传入方法中的不再是形参,而是引用该实参。ref关键字在定义 和 使用时需要在前面添加 ref关键字表示引用,对比代码如下:

ref引用传参 

        //ref:引用的方式传递参数public static int findMax(ref int num1, ref int num2)//public static int findMax(int num1, int num2){num1 *= 2;num2 *= 2;return num1 + num2;}private static void Main(string[] args){//参数必须初始化不然会报错int num1 = 1;int num2 = 2;int num3 = 0;num3 = findMax(ref num1, ref num2);//num3 = findMax(num1, num2);Console.WriteLine($"num1 = {num1}, num2 = {num2}, num3 = {num3}");//num1 = 2, num2 = 4, num3 = 6Console.ReadKey();}

值传参

        //ref:引用的方式传递参数//public static int findMax(ref int num1, ref int num2)public static int findMax(int num1, int num2){num1 *= 2;num2 *= 2;return num1 + num2;}private static void Main(string[] args){//参数必须初始化不然会报错int num1 = 1;int num2 = 2;int num3 = 0;//num3 = findMax(num1, num2);num3 = findMax(num1, num2);Console.WriteLine($"num1 = {num1}, num2 = {num2}, num3 = {num3}");//num1 = 1, num2 = 2, num3 = 6Console.ReadKey();}

out关键字

out关键字与ref关键字一样也是引用传递,在使用out修饰的参数,在定义的时候,可以初始化,也可以不初始化,但是,在方法内部必须赋值。

out输出传参 

        public static int result(int num1, int num2, out int num3)//public static int result(int num1, int num2, int num3){num3 = (num1 + num2) / 2;return num3;}private static void Main(string[] args){int num1 = 2;int num2 = 4;int num3 = 0;int avg = 0;avg = result(num1, num2, out num3);//avg = result(num1, num2, num3);Console.WriteLine($"avg = {avg}, num3 = {num3}");   //avg = 3, num3 = 3Console.ReadKey();}

 值传递

        //public static int result(int num1, int num2, out int num3)public static int result(int num1, int num2, int num3){num3 = (num1 + num2) / 2;return num3;}private static void Main(string[] args){int num1 = 2;int num2 = 4;int num3 = 0;int avg = 0;//avg = result(num1, num2, out num3);avg = result(num1, num2, num3);Console.WriteLine($"avg = {avg}, num3 = {num3}");   //avg = 3, num3 = 0Console.ReadKey();}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux|最佳命令行下载加速器
  • 【C语言】分支与循环(循环篇)——结尾猜数字游戏实现
  • zlm-openRtpServer使用
  • 全面解锁:通过JSP和Ajax实现钉钉签到数据展示及部门筛选功能
  • TypeScript 迭代器和生成器详解
  • Python venv 虚拟环境
  • kafka从浅入深
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • 基于MFC对话框吸管实验
  • 嵌入式初学-C语言-练习三
  • 【51单片机仿真】基于51单片机设计的整数/小数计算器系统仿真源码文档——文末资料下载
  • Leetcode第136场双周赛题解(c++)
  • 云原生应用程序简介
  • 《计算机网络》(第8版)第1章 概述 复习笔记
  • 【JavaScript】栈功能(先进后出)
  • 【Amaple教程】5. 插件
  • 5、React组件事件详解
  • Apache Spark Streaming 使用实例
  • Effective Java 笔记(一)
  • express如何解决request entity too large问题
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • JSDuck 与 AngularJS 融合技巧
  • magento2项目上线注意事项
  • Map集合、散列表、红黑树介绍
  • Material Design
  • Node + FFmpeg 实现Canvas动画导出视频
  • vue-cli在webpack的配置文件探究
  • 多线程事务回滚
  • 番外篇1:在Windows环境下安装JDK
  • - 概述 - 《设计模式(极简c++版)》
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端技术周刊 2019-02-11 Serverless
  • 前端性能优化——回流与重绘
  • 巧用 TypeScript (一)
  • 收藏好这篇,别再只说“数据劫持”了
  • 我看到的前端
  • 携程小程序初体验
  • 以太坊客户端Geth命令参数详解
  • 异常机制详解
  • 由插件封装引出的一丢丢思考
  • 《码出高效》学习笔记与书中错误记录
  • 我们雇佣了一只大猴子...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # 透过事物看本质的能力怎么培养?
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (1) caustics\
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (4)(4.6) Triducer
  • (arch)linux 转换文件编码格式
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)WCF的Binding模型
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm捐赠救助系统 毕业设计 060945