Welcome

首页 / 软件开发 / .NET编程技术 / 理解.Net中带out、ref的方法签名和普通方法签名的区别

理解.Net中带out、ref的方法签名和普通方法签名的区别2011-05-13 博客园 Leo Zhang今天有位新同事问我.Net中带out、ref的方法签名和普通方法签名的有什么区别?我觉得可以从下面的例子说明一些关键的地方。

一、ref/out修饰符说明

对于用ref/out修饰符的说明在MSDN上有详细的说明,地址如下:

http://msdn.microsoft.com/en-us/library/t3c3bfhx(VS.80).aspx。

二、透过IL代码观察ref/out修饰的方法签名(以值类型为例)

1、示例代码:

using System;

namespace ConsoleMain
{
class Program
{
static void Main()
{
Int32 p ;

TestRef(out p); //①

//TestRef(ref p) //②

TestRef(p); //③

Console.ReadKey();
}

static void TestRef(Int32 para) //④
{
para = 1;
}

static void TestRef(out Int32 para) //⑤
{
para = 2;
}

/*static void TestRef(ref Int32 para) //⑥
{
Para3 = 3;
} */
}
}