代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int i=1;
string str="vs2010";
AddValueType( i);
AddReferenceType(str);
Console.WriteLine(i);
Console.WriteLine(str);
}
private static void AddValueType( int i)
{
i = 2;
}
private static void AddReferenceType( string str)
{
str = "hello world!";
}
}
}
输出结果不进行保存,就是1和vs2010。如果我想把调用的两个函数中的i和str保存下来,就要用ref关键字。
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int i=1;
string str="vs2010";
AddValueType(ref i);
AddReferenceType(ref str);
Console.WriteLine(i);
Console.WriteLine(str);
}
private static void AddValueType(ref int i)
{
i = 2;
}
private static void AddReferenceType(ref string str)
{
str = "hello world!";
}
}
}
这样就能把这个两个参数的值保存下来。
为什么呢加个ref就行了呢?
这是跟内分分配有关。