7. ref和out

1. 思考

思考下面的代碼會輸出什么值。

 static void Main()
        {
            int number = 10;
            add(number);
            Console.WriteLine(number);
            Console.ReadLine();
        }

        static void add(int number)
        {
            number = number+number;

            Console.WriteLine(number);
        }

2. ref用途

ref用來修飾方法的參數(shù),被ref修飾的參數(shù)晓折,在調(diào)用的時候,會傳遞過來的是一個引用兽泄。當(dāng)在方法中修改參數(shù)時漓概,那么調(diào)用方傳遞過來的那個變量的值也會被改變。在將要調(diào)用的方法的參數(shù)中病梢,如果有ref修飾的參數(shù)胃珍,那么該參數(shù)需要在傳遞之前初始化。
看下面的例子來理解:

        static void Main()
        {
            int x = 10;
            TestRef(ref x); //傳的參數(shù)是x所在的內(nèi)存地址
            Console.WriteLine(x); // 20
        }

        static void TestRef( ref int number1) //這里是指向值為10的內(nèi)存地址
        {
            Console.WriteLine("TestRef輸出"+ number1); //10
            number1 += number1;
            Console.WriteLine("TestRef輸出" + number1);// 20
        }

3. out用途

out也是用來修飾方法的參數(shù)蜓陌,跟ref很類似觅彰,被out修飾的參數(shù),在調(diào)用的時候钮热,會傳遞過來的是一個引用填抬。當(dāng)在方法中修改參數(shù)時,那么調(diào)用方傳遞過來的那個變量的值也會被改變隧期。在將要調(diào)用的方法的參數(shù)中飒责,如果有out修飾的參數(shù)赘娄,那么該參數(shù)可以需要在傳遞之前初始化。
看下面的例子

        static void Main()
        {
            int y;
            TestOut(out y);
            Console.WriteLine(y); //30

            Console.ReadLine();
        }

        static void TestOut(out int number1)
        {
            number1 = 30;
            Console.WriteLine("TestOut輸出" + number1); // 30
        }

4. ref和out的不同點:

ref修飾的參數(shù)在傳遞之前必須要初始化宏蛉。
out修飾的參數(shù)在傳遞之前可以不初始化遣臼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市檐晕,隨后出現(xiàn)的幾起案子暑诸,更是在濱河造成了極大的恐慌,老刑警劉巖辟灰,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異篡石,居然都是意外死亡芥喇,警方通過查閱死者的電腦和手機圈驼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門囤萤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來析命,“玉大人呜投,你說我怎么就攤上這事腾节〖坪校” “怎么了堪滨?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵计螺,是天一觀的道長珊搀。 經(jīng)常有香客問我冶忱,道長,這世上最難降的妖魔是什么境析? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任囚枪,我火速辦了婚禮,結(jié)果婚禮上劳淆,老公的妹妹穿的比我還像新娘链沼。我一直安慰自己,他們只是感情好沛鸵,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布括勺。 她就那樣靜靜地躺著,像睡著了一般曲掰。 火紅的嫁衣襯著肌膚如雪疾捍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天蜈缤,我揣著相機與錄音拾氓,去河邊找鬼。 笑死底哥,一個胖子當(dāng)著我的面吹牛咙鞍,可吹牛的內(nèi)容都是我干的房官。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼续滋,長吁一口氣:“原來是場噩夢啊……” “哼翰守!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疲酌,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蜡峰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后朗恳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湿颅,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年粥诫,在試婚紗的時候發(fā)現(xiàn)自己被綠了油航。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡怀浆,死狀恐怖谊囚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情执赡,我是刑警寧澤镰踏,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站沙合,受9級特大地震影響奠伪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灌诅,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一芳来、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猜拾,春花似錦即舌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盯仪,卻和暖如春紊搪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背全景。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工耀石, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爸黄。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓滞伟,卻偏偏與公主長得像揭鳞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子梆奈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容