params:

params在参数中有且只能出现一次,用一个数组代替参数,并且不能有其他参数;

ex:

static void Main(string[] args)
{
object[] arr = new object[3]{"a","b","c"}; useParmas(arr);  } public static void useParams(params object[] list) { for(int i = 0 ; i<list.length ; i++) { Console.WriteLine(list[i]); } }

 

ref:

1.若要使用ref,则参数及调用方法时都需要显示使用ref;

2.传递的值必须要先初始化;

3.属性不是变量因此不能作为参数传递;

static void Main(string[] args)
{
    int i = 10;  //2.传递的值必须要先初始化
 
  Console.WriteLine(i);  //10;
useRef(
ref i);  //110; /1.显示的使用ref } public static void useRef(ref int i)  //1.显示的使用ref { i += 100;
Console.WriteLine(i); }

out:

1.out在使用时 传递的值不需要初始化

2.需要调用方法以便在方法返回之前赋值

static void Main(string[] args)
 {
       int a; string b; bool c;

        useParams(out a, out b, out c);

        Console.WriteLine("int is {0}", a);  //20
        Console.WriteLine("string is {0}", b);  //bbb
        Console.WriteLine("bool is {0}", c);  //true
}

public static void useParams(out int a , out string b , out bool c)
{
      a = 20;
      b = "bbb";
      c = true;
}

 

Posted on 2013-05-04 00:54  SmileCN  阅读(133)  评论(0编辑  收藏  举报