out参数:

out关键字 通过引用来传递参数,在定义方法和调用方法的时候都必须使用out关键字

简单来讲out可以用来返回多个参数类型。

       static void Main(string[] args)
{
string s = "";
int result;
bool b = MyTest(s,out result);
}
public static bool MyTest(string s, out int result)
{
bool isTrue;
try {
result = Convert.ToInt32(s);//使用out参数必须在定义方法内进行赋值
isTrue = true;
}
catch
{
isTrue = false;
result = ;
}
return isTrue;
}

该方法返回类型为bool类型,在返回bool类型的同时也顺带返回了int类型的result变量。即,返回两种变量类型。


ref参数

ref参数在定义的方法内对其进行处理,再将结果返回,定义方法无需多余的返回类型。

ref参数和out 的的区别 out必须在定义方法内部赋值,ref必须在调用方法之前为其实参赋值。

        static void Main(string[] args)
{
//使用ref参数来交换两个数字的值
int a = ;
int b = ;
Change(ref a, ref b);
Console.WriteLine("a{0},b{1}",a,b);
Console.ReadKey();
}
public static void Change(ref int a, ref int b)
{
int temp;
temp = a;
a = b;
b = temp;
}

注意 在定义方法的时候 可以不需要返回值啦~


params可变参数

将实参列表中与可变参数数组类型一致的元素都当做数组的元素去处理。

params可变参数必须是形参的最后一个元素。

        static void Main(string[] args)
{
//方法一:可以使用数组传参
//int[] scores = {22,11,33};
//test("张三",11,scores)
//方法二:也可以直接在调用的时候使用和数组类型一致的元素
test ("张三", , , , );
Console.ReadKey();
}
/// <summary>
/// params测试函数,计算一个同学的总成绩
/// 在params使用的时候必须将其放在最后一个参数,如下所示!
/// </summary>
/// <param name="name">姓名</param>
/// <param name="number">学号</param>
/// <param name="s">可变数组成绩</param>
public static void test(string name, int number, params int[] s)
{
int sum = ;
for (int i = ; i < s.Length; i++)
{
sum = sum + s[i];
}
Console.WriteLine("{0}的学号是{1},总分为{2}", name, number, sum);
}

C#中的out参数/ref参数/params可变参数的更多相关文章

  1. out参数ref参数params 可变参数

    1.我们在主函数中调用其他函数,我们管主函数为调用者,其他函数为被调用者. 如果被调用者,想要得到调用者的值:传参 使用静态字段来模拟全局变量  在方法外类里写字段 public static _na ...

  2. C#中的out、ref、params详解

    out参数: 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组.但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数.out参数就侧重于 ...

  3. params可变参数

    class Program { // params可变参数 //将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理. //params可变参数必须是形参列表中的最后一个元素. static ...

  4. params可变参数、SqlCommand.Parameters.add()方法

    namespace params可变参数{ class Program { static void Main(string[] args) { int[] num = {66,99,55,44, }; ...

  5. C# params 可变参数使用注意

    今天在一个 .NET Core 项目中调用一个自己实现的使用 params 可变参数的方法时触发了 null 引用异常,原以为是方法中没有对参数进行 null 值检查引起的,于是加上 check nu ...

  6. Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

    Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1 ...

  7. [c#]params可变参数

    摘要 在项目中多多少少会用到params这个关键字,来修饰参数,它的作用,让该参数的个数是可变的,并且可变参数必须是方法的最后一个参数.但如何判断到底有没有为该参数传递值,怎么判断? 一个例子 sta ...

  8. C语言可变参数宏及‘##’在可变参数中的作用

    测试代码及解释: #include <stdio.h> #define PRINT(x) printf x #define SECONDPRINT(fmt,arg...) printf(f ...

  9. C#方法中三个重要的参数:out、ref、params

    备注:适用于初学者,自学于传智播客. 1.out参数. 概念:如果在一个方法中,返回多个相同类型值的时候,可以考虑返回一数组.但是返回多个不同类型值的时候,返回数组显然不能解决问题,这时就引入out参 ...

随机推荐

  1. WebGL光照阴影映射

      原文地址:WebGL光照阴影映射   经过前面的学习,webgl的基本功能都已经掌握了,我们不仅掌握了着色器的编写,图形的绘制,矩阵的变换,添加光照,还通过对webgl的基础api封装,编写出了便 ...

  2. Effective Java 第三版——22. 接口仅用来定义类型

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  3. deeplearning.ai 人工智能行业大师访谈 Yoshua Bengio 听课笔记

    1. 如何走上人工智能的研究的?Bengio说他小时候读了很多科幻小说,1985年(64年出生,21岁)研究生阶段开始阅读神经网络方面的论文,对这个领域产生了热情. 2. 如何看深度学习这些年的发展? ...

  4. [51nod1597]有限背包计数问题

    你有一个大小为n的背包,你有n种物品,第i种物品的大小为i,且有i个,求装满这个背包的方案数有多少 两种方案不同当且仅当存在至少一个数i满足第i种物品使用的数量不同 Input 第一行一个正整数n 1 ...

  5. ucosii --任务就绪表

    任务就绪表的任务就是高效的找出当前优先级最高的就绪任务. 由任务就绪表OSRdyTbl和任务就绪组OSRdyGrb组成,OSRdyTbl每一个位都记录着一个任务的就绪状态, 0非就绪1就绪,OSRdy ...

  6. 自己封装一个简单的ajax插件

    function myAjax(obj) { var xmlHttp; //保存xmlHttpRequest对象 var type = obj.requestType; //保存请求方式 var ca ...

  7. 利用PHPExcel导出Excel并设置Excel格式以及数据源

    浏览:23969 发布日期:2013/07/24 分类:技术分享 代码有点长,读起来有点累.先来个截图 导出的Excel太宽了,所以将后面的列宽重新调整了再截的图 功能包括: 1.设置单元格格式,包括 ...

  8. 这个时间格式2017-09-26-T04:00:00Z php识别不出来

    这应该不对吧 这是什么格式?看起来不标准,一般不都是传 2017-09-26 04:00:00 这种吗?不行用正则筛吧.echo date('Y-m-d H:i:s',date_create_from ...

  9. 阿里云邮件服务器怎么设置才能在QQ邮箱访问,互发邮件?

    必须要在阿里云邮上打开IMAP和SMTP IMAP能够代发代收.在线更改.垃圾拦截,比POP3好: 记住打开的协议号: IMAP:143 带SSL:993 SMTP: 25 带SSL:465 前提是能 ...

  10. 利用xcode生成的app生成可以在iphone和itouch上运行的ipa安装包

    在编译好的真机版目录下的.app文件,至于生成真机可以运行的app的方法,有两种方式,一种是交99美元获得一个证书,另外一种是破解的方式,在此不再详述,本文假设你已经生成了真机上可以运行的app包了( ...