跳到主要内容

asp.net 方法的参数传递机制 值参数 引用参数 输出参数区别 视频详解

大小:7.14MB       时间:2024-12-07

方法的参数传递机制 txt版
//方法的参数传递机制
//值参数(Value Parameter)
//方法名称(参数类型 参数名称[,参数类型 参数名称])
//引用参数(Reference Parameter)
//方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称])
//输出参数(OutPut Parameter)
//方法名称(out 参数类型 参数名称[,out 参数类型 参数名称])
//例子:
using System;
class Method
...{
public static int ValueMethod(int i)
...{ i++;
}
public static int ReferenceMethod(ref int i )
...{ i++;
}
public static int OutPutMethod(out int i )
...{ i=0 //必需进行初始化
i++;
}
static void Main()
...{
int i = 0 ;
ValueMethod(1);
Console.WriteLine("i="+i);
int j = 0;
ReferenceMethod(ref j);
Console.WriteLine("j="+j);
int k = 0;
OutPutMethod(out k);
Console.WriteLine("k="+k);
}
//输出参数和引用参数的区别
//从CLR角度看是一样的,但是C#编译器会将二个关键字区别对待,
//如果方法参数标记为out,调用都不希望在调用方法之前初始化对象,
//被调用的方法不能读取对象的值,而且被调用的方法在返回之前为对象赋值.
//如果方法参数标记为REF,调用者必需在调用方法之前初始化对象,
//被调用的方法可以读参数,也可为参数赋值.
//向方法传递可变数量的参数可以使用params关键字
using System;
class Method
...{
static int addi(params int [] values)
...{
int sum=0;
foreach(int i in value)
...{
sum+ = i;
return sum;
}
static void Main()
...{
Console.WriteLine(1,2,3);//运行结果为6
}
}
}
using System;
class Method
...{
static void PrintArr(int [] arr)
...{
for (int i= 0;i<arr.Length;i++ )
arr[i]=i;
}
static void Main()
...{
int [] arr = ...{100,200,300,400};
PrintArr(arr);
foreach(int i in arr)
Console.Write(i+",");//;;输出结果为0,1,2,3
}
}
}