C#方法中三个重要的参数:out、ref、params
备注:适用于初学者,自学于传智播客。
1.out参数。
概念:如果在一个方法中,返回多个相同类型值的时候,可以考虑返回一数组。但是返回多个不同类型值的时候,返回数组显然不能解决问题,这时就引入out参数。out参数侧重于在一个方法中可以返回多个不同类型的值。
代码举例:
main:Test(numbers, out max1, out min1, out sum1, out avg1, out b, out s, out d); 方法:public static void Test(int[] nums, out int max, out int min, out int sum, out int avg, out bool b, out string s, out double d) {...}
2.ref参数。
概念:能够将一个变量带入一个方法中进行改变,改变完成后再将改变后的值带出方法,ref参数要求在方法外必须为其赋值,而方法内可以不赋值。
代码举例:
main:Test(ref n1, ref n2); 方法:public static void Test(ref int n1, ref int n2) {...}
3.params可变参数。
概念:将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。params可变参数必须是形参列表中的最后一个元素。
代码举例:
main:Test(,,,); 方法:public static void Test(string name, int id, params int[] score) {...}
C#方法中三个重要的参数:out、ref、params的更多相关文章
- C# 方法中带默认值的参数
设计一个方法的参数时,可为部分或全部参数分配默认值.然后,调用这些方法的代码可以选择不指定部分实参,接受其默认值.除此之外,调用方法时,还可通过指定参数名称的方式为其传递实参.以下代码演示了可选参数和 ...
- SpringMVC的controller方法中注解方式传List参数使用@RequestBody
在SpringMVC控制器方法中使用注解方式传List类型的参数时,要使用@RequestBody注解而不是@RequestParam注解: //创建文件夹 @RequestMapping(value ...
- C#高级参数out,ref,params
在C#中通过使用方法来获取返回值时,通常只能得到一个返回值.因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? out 当需要返回一系列返回值时可用out高级 ...
- 12SpringMvc_在业务控制方法中写入普通变量收集参数
这篇文章讲的是jsp页面不是会传一些参数到Action中,那么Action怎么去接受这个数据呢? 方案: 案例结构如下:
- java方法中参数传递与随机点名器、库存管理案例
一 参数传递 1.定义: 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数, 这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我 们称 ...
- 如何给ioloop.run_sync()中调用的函数传入参数
问题 如何给tornado.ioloop.IOLoop中的run_sync方法中调用的函数添加参数 解决方案 使用functools.partial 解决示例 from tornado import ...
- c#基础学习(0806)之可变参数、ref和out关键字的简单使用
params可变参数: 1.无论方法有几个参数,可变参数必须出现再参数列表的最后,可以为可变参数直接传递一个对应类型的数组: 2.可变参数可以传递参数也可以不传递参数,如果不传递参数,则数组为一个长度 ...
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
js replace 全局替换 js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...
- C#方法中参数ref和out的解析
一.C#方法中参数类型 有4种参数类型,有时候很难记住它们的不同特征,下图对它们做一个总结,使之更容易比较和对照. 二.C#方法中的参数 1.值参数 使用值参数,通过复制实参的值到形参的方式把数据传递 ...
随机推荐
- iOS MVC, MVVM
在iOS app里,如果用传统的MVC模式,Model层就是数据,View层就是Storyboard,nib文件或者构建UI的代码,Controller层就是ViewController,负责协调Mo ...
- Lambda GroupBy Sum
DataTable dt = new DataTable(); dt.AsEnumerable().GroupBy(r => r["ShopName"]) .Select(g ...
- Perl爬取江西失信执行
#! /usr/bin/perl use strict; use Encode qw(encode decode); binmode(STDIN,":encoding(utf8)" ...
- PDF的信息表达原理及特点分析
一.PDF概述 PDF(Portable Document Format)是一种结构化的文档格式.它由美国著名排版与图像处理软件Adobe公司于1993年首次发布(1.0版),并于同年推出了其相应的支 ...
- leetCode 354. Russian Doll Envelopes
You have a number of envelopes with widths and heights given as a pair of integers (w, h). One envel ...
- 将C#datagridview控件的数据导出到Excel中
1.添加引用Microsoft.Office.Interop.Excel. 2.程序代码引用using Excel = Microsoft.Office.Interop.Excel; 3.控件事件代码 ...
- gdnz
更新yum库:yum updat yum install epel-release 查看是否安装mysql:rpm -qa|grep -i mysql 移除列表mysql :yum remo ...
- dos 批处理删除svn目录
转自 http://blog.sina.com.cn/mpl398235717 @echo offecho ********************************************** ...
- julia的优化?
julia> function fib1(n) if n==1 return n else return n+fib1(n-1) end end fib1 (generic function w ...
- 国内最给力五大免费VPN商家
国内有很多提供免费VPN的商家,水平也是参差不齐,有的用心服务,为客户提供优质免费VPN线路,进而赢得客户的信任.有的则对免费线路敷衍了事,只对付费线路“尽职尽责”,从而流失大量潜在VIP客户. 笔者 ...