C#out、ref和params参数

这篇具有很好参考价值的文章主要介绍了C#out、ref和params参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

out参数:

  1. out参数用于传递一个方法的输出值。它表示在方法内部,该参数没有被初始化,而是由方法赋值。方法结束后,该参数会被赋予一个值。
  2. 在使用out参数时,调用方法时必须指定该参数,并且不需先进行初始化。
  3. out参数可以在方法内部定义,并且可以定义多个。

示例代码:

 static void Divide(int dividend, int divisor, out int result, out int remainder)
 {
     result = dividend / divisor;
     remainder = dividend % divisor;
 }
 
 static void Main()
 {
     int quotient;
     int remainder;
     Divide(10, 3, out quotient, out remainder);
     Console.WriteLine($"Quotient: {quotient}, Remainder: {remainder}"); // 输出: Quotient: 3, Remainder: 1
 }

ref参数:

  1. ref参数用于在调用方法时传递一个变量的引用,这意味着方法内部可以修改该变量,并且修改后的值将影响到方法之外的调用者。
  2. 在使用ref参数时,调用方法时必须指定该参数,并且要将一个已经初始化的变量传递给它。
  3. ref参数必须在方法定义和调用时都进行声明。

示例代码:

static void Increment(ref int number)
{
    number++;
    Console.WriteLine($"Inside Increment method: {number}"); // 输出: Inside Increment method: 11
}

static void Main()
{
    int value = 10;
    Increment(ref value);
    Console.WriteLine($"After calling Increment method: {value}"); // 输出: After calling Increment method: 11
}

params参数:

  1. params参数用于指定一个方法的可变数量参数。它允许我们在调用方法时传递不固定数量的参数。
  2. params参数必须是方法的最后一个参数,并且必须是一个数组类型。
  3. 在方法内部,我们可以像处理普通数组一样处理params参数。

示例代码:

static int Sum(params int[] numbers)
{
    int sum = 0;
    foreach (int num in numbers)
    {
        sum += num;
    }
    return sum;
}

static void Main()
{
    int result1 = Sum(1, 2, 3); // 调用方法时可以传入任意数量的参数
    Console.WriteLine($"Sum: {result1}"); // 输出: Sum: 6

    int[] values = { 4, 5, 6 };
    int result2 = Sum(values); // 也可以传入一个数组作为参数
    Console.WriteLine($"Sum: {result2}"); // 输出: Sum: 15
}

文章来源地址https://www.toymoban.com/news/detail-547733.html

到了这里,关于C#out、ref和params参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#的ref和out使用

    ref和out是C#中用于参数传递的,它们都允许在方法内部修改参数的值,区别如下: 1、ref:使用ref声明的参数,在方法调用前必须被初始化,并且可以被视为已经赋予了一个初始值。在方法内部对ref参数的修改会影响到方法外部传入的实参,也就是说,我在

    2024年02月16日
    浏览(51)
  • CS1988|C#无法在异步方法中使用ref,in,out类型的参数的问题

    🌀| 场景: BlazorServer的场景中推荐使用异步方法,使用ref,out,in为参数前缀则报错CS1988 原因如下: ref parameters are not supported in async methods because the method may not have completed when control returns to the calling code. Any changes to the referenced variables will not be visible to the calling code, resulting in a CS

    2024年02月12日
    浏览(26)
  • C#中数组参数=out参数?

    点击查看代码 https://blog.csdn.net/weixin_44806070/article/details/107882525 https://www.cnblogs.com/mdnx/archive/2012/09/04/2671060.html

    2024年02月13日
    浏览(32)
  • C#中数组=out参数?

    点击查看代码 https://blog.csdn.net/weixin_44806070/article/details/107882525 https://www.cnblogs.com/mdnx/archive/2012/09/04/2671060.html

    2024年02月13日
    浏览(34)
  • [ROS 系列学习教程] ROS参数服务器(Param):通信模型、Hello World与拓展

    ROS 系列学习教程(总目录) 参数服务器在ROS中主要用于实现不同节点之间的数据共享。 参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据。 使用场景一般存储一些机器人的固有参数,

    2024年02月01日
    浏览(37)
  • Unity学习笔记--使用 C# 开发一个 LRU

    什么是 LRU 在计算机系统中,LRU(Least Recently Used,最近最少使用)是一种缓存置换算法。缓存是计算机系统中的一种能够高速获取数据的介质,而缓存置换算法则是在缓存空间不足时,需要淘汰掉部分缓存数据以腾出空间,使得后来需要访问数据能够有更多的缓存空间可用。

    2024年02月13日
    浏览(31)
  • C#从零开始的学习笔记(2)运行和开发环境

    .NET Framework C#的运行环境,换句话说就是.NET Framework的运行环境。Windows7中包含了.NET Framework3.5,windows10中包含了.NET Framework4.6,Windows10 v1703中包含了.NET Framework4.7。安装visual studio的时候,也会安装相应版本的.NET Framework。当然,各位读者也可以自行前往Microsoft官网上下载最新的

    2024年02月08日
    浏览(39)
  • 【学习笔记】C#基础 - 由C/C++衍生出来的面向对象的编程语言

    1、基本语法 2、类的命名 必须以 A-Z / _ / @ 开头,不能是数字,之后可以跟 A-Z 、 0-9 、 _ 、 @ 不能包含任何空格或特殊符号,比如 ?-+!#%^*()[]{}.;:\\\"\\\'/ 不能与同名(除非添加 @ 前缀,@不作为标识符本身的一部分),不能与类库同名 必须区分大小写(PascalCase命名法) 3、关

    2024年02月07日
    浏览(45)
  • Vue Router不要再使用params传参了,params获取不到参数,官方删除params传参

    之前说过,vue路由传参有两种方式,分别是 query 和 params ;query是明文,params是隐藏的; 今天在使用params的时候发现获取不到参数了 我的写法: 1、 路由配置: 2、跳转: 3、接收: 4、结果: 得到一个警告和空对象 查看链接4.1.4更新日志发现官方做了删除替代,那这样的话

    2024年02月10日
    浏览(66)
  • 【鸿蒙系统学习笔记】TypeScript开发语言

    HarmonyOS 应用的主要开发语言是 ArkTS,它由 TypeScript(简称TS)扩展而来,在继承TypeScript语法的基础上进行了一系列优化,使开发者能够以更简洁、更自然的方式开发应用。值得注意的是,TypeScript 本身也是由另一门语言 JavaScript 扩展而来。因此三者的关系如下图所示 2.1.1、线

    2024年02月19日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包