using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace refout
{
class Program
{
static void Main(string[] args)
{
int age = 20;
Age(age);
Console.WriteLine("主函数age = {0}", age);
//Age(ref age);
//Console.WriteLine("ref主函数age = {0}",age);
Age(out age);
Console.WriteLine("out主函数age = {0}", age);
Console.ReadKey();
}
static void Age(int age) //简单值传递,复制了一份,不影响外部值
{
age++;
Console.WriteLine("值传递----函数内部age = {0}", age);
}
//static void Age(ref int age) //ref必须初始化,因为是引用,引了才能用
//{
// age++;
// Console.WriteLine("ref---函数内部age = {0}", age);
//}
//内为外赋值,用在函数有多个返回值的场所 弥补了return仅能返回一个值的缺点
static void Age(out int age) //out内部赋值,无需初始化,即便初始化了也没有用
{
age = 30; //此函数没有返回值,但是仍可以对外部值进行改变
Console.WriteLine("out---函数内部age = {0}", age);
}
}
}
out的实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace refout
{
class Program
{
static void Main(string[] args)
{
string str;
str = Console.ReadLine();
int i;
if (int.TryParse(str, out i)) //函数的作用是将数值型字符串装换成数值,指示返回知否成功bool型 i的值由out返回
{
Console.WriteLine("成功 {0}", i); //成功 i返回转换的数值
}
else
{
Console.WriteLine("失败 {0}", i); //失败,i返回0
}
Console.ReadKey();
}
}
}
参考资料:传智播客.Net培训—C#编程基础