博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ref总结

Posted on 2010-04-08 20:14  雷雷  阅读(78)  评论(0编辑  收藏  举报
代码
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就行了呢?

这是跟内分分配有关。