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. 前端请求参数MD5加密校验,参数串解密

    首先引入MD5加密库:=>https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js; 步骤:=>1.请求前对参数进行字典升序排序,排 ...

  2. NYOJ 题目77 开灯问题(简单模拟)

    开灯问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:1           描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 ...

  3. 搬寝室(经典dp)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 hdu_1421:搬寝室 Time Limit: 2000/1000 MS (Java/Othe ...

  4. redis3.0 集群在windows上的配置(转)

    1. 安装Redis版本:win-3.0.501https://github.com/MSOpenTech/redis/releases页面有,我下载的是zip版本的:Redis-x64-3.0.50 ...

  5. ZOJ 1203 Swordfish

    题目: There exists a world within our world A world beneath what we call cyberspace. A world protected ...

  6. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](六)

    前言 大家好,我是Rector 又是星期五,很兴奋,很高兴,很high...啦啦啦... Rector在图享网又和大家见面啦!!!上一篇<一步一步创建ASP.NET MVC5程序[Reposit ...

  7. The most interesting feature of iPhone X - FaceID

    No doubt everybody knows that iPhone 8 & iPhone X appear on the market. A feature called FaceID ...

  8. phpstudy最新版中php5.6版报错

  9. Sublime Text 使用介绍、全套快捷键及插件推荐

    开篇:如果说Notepad++是一款不错Code神器,那么Sublime Text应当称得上是神器滴哥.Sublime Text最大的优点就是跨平台,Mac和Windows均可完美使用:其次是强大的插 ...

  10. vuejs中执行npm run dev出现页面cannot GET/问题

    1.问题描述 最近用vue-cli搭建了一个小项目,其中在对项目进行打包测试时修改了webpack.base.conf.js中的配置信息,之后再用npm run dev之后出现如下的情况: 最近又有网 ...