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();
      }
   }
  }
View Code

 

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();
         
      }
   }
  }
View Code

 

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();
      }
   }
  }
View Code

 

转载于:https://www.cnblogs.com/syzly/p/6747121.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值