1. 引用型参数,以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=33,j=44;
Swap(ref i, ref j);
Console.WriteLine("i={0},j={1}",i,j);
}
}
//////////////////////////////////////////////////////////////////////
编译上述代码,程序将输出:
i=2,j=1
//////////////////////////////////////////////////////////////////////
2. 输出参数,以out修饰符声明;
using System;
calss Test
{
static void SplitPath(string path,out string dir,out string name)
{
int i =path.Length;
while(i>0)
{
char ch = path[i-1];
if(ch=='\\'||ch'/'||ch==':')
break;
i--;
}
dir = path.Substring(0,i);
name = path.Substring(i);
}
static void Main()
{
string dir,name;
SplitPath("c:\\Windows\\System\\hello.txt",out dir,out name);
Console.WriteLine(dir);
Console.WriteLine(name);
}
}
///////////////////////////////////////////////////////////////////////
程序的输出将会是:
c:\Windows\System\
hello.txt
///////////////////////////////////////////////////////////////////////
注意: 变量dir和name在传递给SplitPath之前并没有初始化,在调用之后它们则有了明确的值。
|