首页 > 编程语言 >C#中out关键字

C#中out关键字

时间:2023-11-29 11:03:37浏览次数:28  
标签:arr C# average 关键字 int 参数 out

简介

在C#中可以使用out关键字,指定所给的参数是一个输出参数。out关键字的使用方式与ref关键字相同,都是在函数定义和函数调用中用作参数的修饰符。

一个使用out关键字的例子

 internal class Program
  {
       static void Main(string[] args)
      {
           int[] arr = { 2, 4, 6, 8, 10, 13 };
           int max,min;
           double average;
           average = CalculateAverage(arr, out max, out min);
           Console.WriteLine($"The Max is {max}");
           Console.WriteLine($"The Min is {min}");
           Console.WriteLine($"The Average is {average}");

      }
       static double CalculateAverage(int[] arr, out int maxVal, out int minVal)
      {
           maxVal = arr[0];
           minVal = arr[0];
           double sum = 0;
           double average = 0;
           for(int i = 0;i < arr.Length;i ++)
          {
               sum += arr[i];
               if (arr[i] > maxVal)
              {
                   maxVal = arr[i];
              }
               if (arr[i] < minVal)
              {
                   minVal = arr[i];
              }
          }
           average = sum / arr.Length;
           return average;
      }
  }

运行结果,如下图所示:

image-20231102204104348

实际上,out的执行方式与引用参数几乎完全一样,因为在函数执行完毕后,该参数的值将返回给函数调用中使用的变量。

但是二者还是存在一些重要的区别:

1、把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。

2、在使用out参数时,必须把它看成尚未赋值。

参考书籍

《C#入门经典(第7版)》——Benjamin Perkins、Jacob Vibe Hammer、Jon D. Reid

标签:arr,C#,average,关键字,int,参数,out
From: https://www.cnblogs.com/mingupupu/p/17864071.html

相关文章

  • C语言字节对齐 __align(),__attribute((aligned (n))),#pragma pack(n)
    例子:__align(),__attribute((aligned(n))),#pragmapack(n)#include<stdio.h>main(){structA{inta;charb;shortc;};structB{charb;inta;shortc;};#pragmapack(2)/*指定按2字节对齐*/......
  • 亚马逊云科技基于 Polygon 推出首款 Amazon Managed Blockchain Access,助 Web3 开发人
     2023年11月26日,亚马逊(Amazon)旗下AmazonWebServices(Amazon)在其官方博客上宣布,AmazonManagedBlockchain(AMB)Access已支持PolygonProof-of-Stake(POS)网络,并将满足各种场景的需求,包括需要以高可用方式频繁访问PolygonJSON-RPCAPI的场景以及需要间歇性、不......
  • el select 选项多列,换行,表格,数据量大,全部显示,自定义el-select,el-select插入表格
    1、效果图:2、实现:自定义下拉框内容,采用radio或checkbox作为选项绑定值<template><el-selectv-model="selectValue"v-bind="$attrs"clearable><!--隐藏的option组件,展示下面的插槽--><el-optionv-show="false"/><!--......
  • CRM是如何解决中小型企业遇到的问题的?
     许多企业认识到了应该使用CRM系统来进行客户关系管理,但却对CRM本身不太了解。在了解企业自身需求和问题的情况下,把CRM的功能用到淋漓尽致是每个企业的必修课。下面说说,中小型企业CRM系统需求与功能如何匹配?一、为什么要用CRM系统CRM系统是客户关系管理软件,它不仅仅用于销售......
  • CRM系统数据分析与报表功能对公司来说重要吗?
     竞争日益激烈,企业需要更加高效地管理客户关系,以获取更多的商机。为此,许多企业选择使用CRM系统。在CRM中,数据分析功能扮演着重要的角色。下面就来详细说说,CRM系统数据分析与报表功能对企业来说重要吗?一、CRM数据分析与报表为什么重要?在CRM中,与客户通过多种渠道联系沟通。当客......
  • 移动CRM有哪些应用场景?
     最近杭州亚运会盛大举办,外国友人在打卡各地美食景点的同时也体会到了移动支付的乐趣。在智能手机全面普及的今天,移动CRM系统的应用也越来越广泛,移动CRM系统的应用场景有哪些?我们分享两个例子。场景A:李明是刚刚入职新公司的客户经理,今天的工作内容是拜访三家大客户,时间有限李......
  • SpringMVC_2023_11_28_1 SpringMVC_进阶(数据的接收)
    SpringMVC进阶2023-11-2910:13:40星期三数据的接收a)页面传递的属性名和后台接受的属性名不一致时,如何处理?@RequestParam("页面组件中的属性名")@RequestMapping(value="/login",method=RequestMethod.POST)publicStringlogin(@RequestParam("......
  • 解决:Expected 1 line break before closing bracket, but no line breaks found.eslin
    运行时报错以下 解决在eslintrc.jsrules下添加以下代码'vue/singleline-html-element-content-newline':'off','vue/multiline-html-element-content-newline':'off', ......
  • .vimrc
    vim配置文件更新时间2023/11/29点击查看代码"插件开始的位置callplug#begin('~/.vim/plugged')"语法检查查"Plug'w0rp/ale'"代码自动完成,安装完插件还需要额外配置才可以使用Plug'ycm-core/YouCompleteMe'"用来提供一个导航目录的侧边栏Plug'scrooloose/n......
  • 教育行业CRM需要的四大功能
     教育行业的发展一波三折,要想在激烈的赛道脱颖而出,就需要有一套有效的CRM系统,来帮助教育机构提升招生效率、增加学员留存、提高教学质量。下面说说,教育企业选择CRM系统要具备的四大功能。1、招生管理功能教育机构的首要目标便是招生,CRM系统要能够帮助教育机构管理潜在学员、......