out 、ref、params

1.out参数

在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组,但是如果返回多个不同类型的值的时候,返回数组就不行,那么这个时候可以考虑用out参数。

out参数侧重于在一个方法中可以返回多个不同类型的值。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Collections;
using System.Threading.Tasks;
namespace test
{
  public class myclass {
      public static void test( int[] nums,out int max ,out int min,out int avg,out string str) {
                  max=nums[0];
                  min = nums[0];
                  avg = 0;
                  str = "xiaomin";//out参数必须在方法内赋值
                  for (int i = 0; i < nums.Length;i++ ) {
                      if (nums[i] > max) { max = nums[i]; }
                      if (nums[i] < min) { min = nums[i]; }
                      avg += nums[i];
                  }
                  avg = avg / nums.Length;
          }
      static void Main()
      {
          int[] s = {1,2,3,4,5,6,7,8,9};
          int max1;
          int min1;
          int avg1;
          string str1;
          test(s,out max1,out min1, out avg1,out str1);
          Console.WriteLine(max1);
          Console.WriteLine(str1);
          Console.ReadKey();
      }
   }
  }

2.ref参数

能够将一个变量带入一个方法中进行改变,改变完成后,再将改变后值带出去。

ref参数要求在方法外必须为其赋值,而方法内可以不赋值。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Collections;
using System.Threading.Tasks;
namespace test
{
  public class myclass {
      public static int test(ref int num) {
          num = 100 + num;
          return num;
      }
      static void Main()
      {
          int s = 100;
          test(ref s);
          Console.WriteLine(s);
          Console.ReadKey();

      }
   }
  }

3.params可变参数

将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。必须是形参列表中的最后一个元素

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Collections;
using System.Threading.Tasks;
namespace test
{
  public class myclass {
      public static void test(string name,int xhnum ,params int[] nums) {
          double num = 0;
          for (int i = 0; i < nums.Length;i++ ) {
          num+=nums[i];
          }
          Console.WriteLine("{0}这次考试的总成绩是{1}学号是{2}",name,num,xhnum);
      }
      static void Main()
      {
          test("张三",80,95,98,100);
          Console.ReadKey();
      }
   }
  }

时间: 04-22

out 、ref、params的相关文章

论asp.net out、ref、return

论asp.net out.ref.return ref(引用类型) ref引用类型进出都必须赋值,赋值后会改变类型原来的指针. out(值类型) out值类型进可以不赋值,出必须赋值. return(返回函数类型) return必须返回函数对应的类型. ref实例: protected void Page_Load(object sender, EventArgs e) { string s = "原指针"; str(ref s); Response.Write(s); //结果:新的

C#参数知识盘点,形/实参、值/引用传递、ref、out、in、params、可选、命名等

引言 参数,也叫参变量,是一个变量.在方法签名中随处可见,实现了不同方法间的数据传递,基本上充斥在代码的各个角落里.实参是通过方法调用传递到方法的值的名称,形参是方法期望接收的值.在方法签名或者原型中,方法名称后的括号包含方法的参数及其类型的完整列表.参数声明指定参数中存储的值的类型.大小和标识符.然而小小参数的背后其实也是有着大学问的,所以本篇博文,您可以和博主一起把C#里面各式各样的参数复习一遍.我们先简单回顾一下各种各样的参数概念,对不同类型参数的使用场景有一个了解,再慢慢深入探讨参数的传

C# 方法的out、ref、params参数

一.out参数实例 [实例]求一个数组中的最大值.最小值.总和.平均值 class Program { static void Main(string[] args) { //写一个方法 求一个数组中的最大值.最小值.总和.平均值 int[] nums = { 1, 2, 3, 4, 5, 6 ,7}; int max; int sum; int min; int avg; bool b; string s; double d; GetValue(nums, out max, out min,

uniapp - props、 ref、$emit、$parent、$child

举个例子来解释一下何为父组件,何为子组件? index.vue导入sunui-cell组件的时候,我们就称index.vue为父组件依次类推,在vue中只要能获取到组件的实例,那么就可以调用组件的属性或是方法进行操作 一.props(一般用来单向传值) 1. 何为单向传值? 即父组件传值给子组件(首次)但不能动态(再次)改变子组件现有的值,但我非要改呢? 通过watch监听或者通过$ref标识获取实例后修改. 2.props静态传值 子组件通过props选项来声明一个自定义的属性,然后父组件就可

vue03----生命周期、nextTick()、ref、filter、computed、vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到什么问题、踩过的坑)

### 1.vue的组件和实例都有生命周期,而且是一样的 生命周期:(组件从创建到销毁的过程) 创建 挂载 更新 销毁 组件到达某一个阶段就会自动触发某一些函数,这个函数就叫生命周期的钩子函数. 创建:组件创建的时候触发 beforeCreate created     组件刚创建的数据请求 挂载:创建完成挂载前后触发 beforeMount mounted     DOM的初始化操作 更新:数据发生改变的时候触发 beforeUpdate updated     数据的变化监听,尽量不要在这里

C#中的Params、ref、out的区别

C# Params params params 关键字可以指定在参数数目可变处采用参数的方法参数. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例: 字面意思比较难懂,所以看示例很有用. // keywords_params.csusing System;class App{    public static void UseParams(params object[] list)    {        for (int i

C#中的out、ref、params详解

out参数: 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组.但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数.out参数就侧重于在一个方法中可以返回多个不同类型的值. ref参数: 能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法.ref参数要求在方法外必须为其赋值,而方法内可以不赋值. params可变参数: 将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理.Params可变参数必须是

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(

Bean的id、name、ref、refid

Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: <bean class="com.zyh.spring3.hello.StaticBeanFactory"></bean> 此时需要通过接口getBean(Class<T> requiredType)来获取Bean: 3.如果不指定id,只指定name,那