< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
c#中out與ref的用法與差別
1、out必須在函數體内初始化,在外面初始化沒意義。也就是說,out型的參數在函數體内不能得到外面傳進來的初始值。
2、ref必段在函數體外初始化。
3、兩都在函數體的任何修改都将影響到外面。
例:
using System;
namespace ConsoleApplication1
{
class C
public static void reffun(ref string str)
{
str += " fun";
}
public static void outfun(out string str)
str = "test"; //必須在函數體内初始
}
class Class1
[STAThread]
static void Main(string[] args)
string test1 = "test";
string test2; //沒有初始
C.reffun( ref test1 ); //正确
C.reffun( ref test2 ); //錯誤,沒有指派使用了test2
C.outfun( out test1 ); //正确,但值test傳進去
C.outfun( out test2 ); //正确
Console.Read();
本文轉自 netcorner 部落格園部落格,原文連結:http://www.cnblogs.com/netcorner/archive/2007/10/12/2912285.html ,如需轉載請自行聯系原作者