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
    时间就像海绵里的水,只要你愿意挤,总还是有的——鲁迅
  • 相关阅读:
    Kubernetes 集成研发笔记
    Rust 1.44.0 发布
    Rust 1.43.0 发布
    PAT 甲级 1108 Finding Average (20分)
    PAT 甲级 1107 Social Clusters (30分)(并查集)
    PAT 甲级 1106 Lowest Price in Supply Chain (25分) (bfs)
    PAT 甲级 1105 Spiral Matrix (25分)(螺旋矩阵,简单模拟)
    PAT 甲级 1104 Sum of Number Segments (20分)(有坑,int *int 可能会溢出)
    java 多线程 26 : 线程池
    OpenCV_Python —— (4)形态学操作
  • 原文地址:https://www.cnblogs.com/syzly/p/6747121.html
Copyright © 2011-2022 走看看