文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C# 语言规范 类和对象 方法 参数

C# 语言规范 类和对象 方法 参数

时间:2011-01-10  来源:zhanqi

  • 参数用于向方法传递值或变量引用。

  • 方法的参数从调用该方法时指定的实参 (argument) 获取它们的实际值。

  • 有四类参数:值参数、引用参数、输出参数和参数数组。

  • 值参数 (value parameter) 用于传递输入参数。

  • 一个值参数相当于一个局部变量,只是它的初始值来自为该形参传递的实参。

  • 对值参数的修改不影响为该形参传递的实参。

  • 值参数可以是可选的,通过指定默认值可以省略对应的实参。

  • 引用参数 (reference parameter) 用于传递输入和输出参数。

  • 为引用参数传递的实参必须是变量,并且在方法执行期间,引用参数与实参变量表示同一存储位置。

  • 引用参数使用 ref 修饰符声明。

  • 下面的示例演示 ref 参数的用法。

    • using System;
      
      class Test
      {
          static void Swap(ref int x, ref int y)
          {
              int temp = x;
              x = y;
              y = temp;
          }
      
          static void Main()
          {
              int i = 1, j = 2;
              Swap(ref i, ref j);
              Console.WriteLine("{0} {1}", i, j);     // Outputs "2 1"
          }
      }
  • 输出参数 (output parameter) 用于传递输出参数。

  • 对于输出参数来说,调用方提供的实参的初始值并不重要。

  • 除此之外,输出参数与引用参数类似。

  • 输出参数是用 out 修饰符声明的。

  • 下面的示例演示 out 参数的用法。

    • using System;
      
      class Test
      {
          static void Divide(int x, int y, out int result, out int remainder)
          {
              result = x / y;
              remainder = x % y;
          }
      
          static void Main()
          {
              int res, rem;
              Divide(10, 3, out res, out rem);
              Console.WriteLine("{0} {1}", res, rem);   // Outputs "3 1"
          }
      }
  • 参数数组 (parameter array) 允许向方法传递可变数量的实参。参数数组使用 params 修饰符声明。只有方法的最后一个参数才可以是参数数组,并且参数数组的类型必须是一维数组类型。

  • System.Console
      类的 Write 和 WriteLine 方法就是参数数组用法的很好示例。它们的声明如下。
    • public class Console
      {
          public static void Write(string fmt, params object[] args) {...}
          public static void WriteLine(string fmt, params object[] args) {...}
      }
  • 在使用参数数组的方法中,参数数组的行为完全就像常规的数组类型参数。

  • 但是,在具有参数数组的方法的调用中,既可以传递参数数组类型的单个实参,也可以传递参数数组的元素类型的任意数目的实参。

  • 在后一种情况下,将自动创建一个数组实例,并使用给定的实参对它进行初始化。示例:

    • Console.WriteLine("x={0} y={1} z={2}", x, y, z);
  • 等价于以下语句:

    • string s = "x={0} y={1} z={2}";
      object[] args = new object[3];
      args[0] = x;
      args[1] = y;
      args[2] = z;
      Console.WriteLine(s, args);
  • 相关阅读 更多 +
    排行榜 更多 +
    后室双重现实游戏下载

    后室双重现实游戏下载

    冒险解谜 下载
    魔音少女模拟器下载最新版

    魔音少女模拟器下载最新版

    模拟经营 下载
    雷曼大冒险官方版下载

    雷曼大冒险官方版下载

    冒险解谜 下载