天天看點

c#中out與ref的用法與差別

< 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  ,如需轉載請自行聯系原作者