C#学习笔记:让函数有多个返回值
看到这个题目,我们可能会有点迟疑,理论上讲一个函数只有一个返回值,是的,确实是这样,但我们同样也有方法可以实现这个效果:
使用ref关键字:
//Example1
using System;
namespace Program
{
class Test
{
static void Main()
{
Test ts = new Test();
int i=0;//必须有初始化
int sum = ts.Fun(ref i, 10);
Console.WriteLine(i);//输出10
Console.WriteLine(sum);//输出20
Console.ReadKey();
}
public int Fun(ref int i, int j)
{
i = j;
return i + j;
}
}
}
using System;
namespace Program
{
class Test
{
static void Main()
{
Test ts = new Test();
int i=0;//必须有初始化
int sum = ts.Fun(ref i, 10);
Console.WriteLine(i);//输出10
Console.WriteLine(sum);//输出20
Console.ReadKey();
}
public int Fun(ref int i, int j)
{
i = j;
return i + j;
}
}
}
使用out关键字同样也可以打到这种效果,示例代码如下:
//Example2
using System;
namespace Program
{
class Test
{
static void Main()
{
Test ts = new Test();
int i=0;//必须有初始化
object obj;//可以不用初始化
ts.Fun(ref i, out obj);
Console.WriteLine(i);//输出5
Console.WriteLine(obj);//输出5
Console.ReadKey();
}
public void Fun(ref int i, out object obj)
{
i += 5;
obj = i.ToString();
Console.WriteLine(i);//输出5
Console.WriteLine(obj);//输出5
}
}
}
using System;
namespace Program
{
class Test
{
static void Main()
{
Test ts = new Test();
int i=0;//必须有初始化
object obj;//可以不用初始化
ts.Fun(ref i, out obj);
Console.WriteLine(i);//输出5
Console.WriteLine(obj);//输出5
Console.ReadKey();
}
public void Fun(ref int i, out object obj)
{
i += 5;
obj = i.ToString();
Console.WriteLine(i);//输出5
Console.WriteLine(obj);//输出5
}
}
}
作者:Jason_z(开发者的网上家园 - 博客园)
出处:http://www.cnblogs.com/Jason_z/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。