zoukankan      html  css  js  c++  java
  • 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
    时间就像海绵里的水,只要你愿意挤,总还是有的——鲁迅
  • 相关阅读:
    【JZOJ6409】困难的图论
    学习LCT小结
    jzoj5432. 【NOIP2017提高A组集训10.28】三元组
    jzoj6367. 【NOIP2019模拟2019.9.25】工厂(factory)
    jzoj6366. 【NOIP2019模拟2019.9.25】化学(chem)
    jzoj5433. 【NOIP2017提高A组集训10.28】图
    学习拓展中国剩余定理小结
    jzoj6300. Count
    jzoj3736. 【NOI2014模拟7.11】数学题
    jzoj6276. 【noip提高组模拟1】树
  • 原文地址:https://www.cnblogs.com/syzly/p/6747121.html
Copyright © 2011-2022 走看看