麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

c# - 外部對(duì)象作為參數(shù)調(diào)用方法時(shí)需要注意的問(wèn)題

2019-11-14 11:36:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

我們?cè)赾#中調(diào)用方法的時(shí)候,是否曾擔(dān)心過(guò)我們傳進(jìn)去的參數(shù)會(huì)被修改,或者擔(dān)心其不被修改;本文介紹了常見(jiàn)的幾種情況,并做了代碼測(cè)試,可以做個(gè)參考。

測(cè)試方法:

1. 定義兩個(gè)類,IntClass(僅包含一個(gè)int類型的屬性)及StringClass(僅包含一個(gè)string類型的屬性)。

2. 測(cè)試時(shí),定義四個(gè)分別為以下類型:int,string,IntClass,StringClass的變量。

3. 對(duì)于每一個(gè)變量,定義兩個(gè)方法(帶ref及不帶ref關(guān)鍵字),在方法中修改參數(shù)的值;4個(gè)變量共計(jì)8個(gè)方法。

4. 觀察每次方法調(diào)用,是否對(duì)方法調(diào)用之外的變量產(chǎn)生影響。

測(cè)試代碼:

namespace RefTest{    public class IntClass    {        public int I { get; set; }    }    public class StringClass    {        public string S { get; set; }    }    class PRogram    {        public static void IntTest(int i)        {            i++;        }        public static void IntTest2(ref int i)        {            i++;        }        public static void IntClassTest(IntClass i)        {            i.I++;        }        public static void IntClassTest2(ref IntClass i)        {            i.I++;        }        public static void StringTest(string str)        {            str += " hello";        }        public static void StringTest2(ref string str)        {            str += " hello";        }        public static void StringClassTest(StringClass str)        {            str.S += " hello";        }        public static void StringClassTest2(ref StringClass str)        {            str.S += " hello";        }        static void Main(string[] args)        {            int i = 3;            string str = "hi ";            IntClass ic = new IntClass() { I = 3 };            StringClass sc = new StringClass() { S = "hi " };            IntTest(i);               // i 不會(huì)被修改            IntTest2(ref i);          // i 會(huì)被修改            IntClassTest(ic);         // ic.I 會(huì)被修改            IntClassTest2(ref ic);    // ic.I 會(huì)被修改            StringTest(str);          // str 不會(huì)被修改            StringTest2(ref str);     // str 會(huì)被修改            StringClassTest(sc);      // sc.S 會(huì)被修改            StringClassTest2(ref sc); // sc.S 會(huì)被修改        }    }}

測(cè)試結(jié)果:

結(jié)論:

1. 如果方法參數(shù)是類,則會(huì)被當(dāng)作引用類型,無(wú)論是否使用ref,值都會(huì)在調(diào)用方法時(shí)被修改。 

2. 如果方法參數(shù)是基本類型,如int或者string,不使用ref,則值不會(huì)在調(diào)用方法時(shí)被修改;使用ref,值會(huì)在調(diào)用方法時(shí)被修改。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久色亚洲| 在线看一区二区三区 | 国产精品视频一区二区三区四 | 欧美a级大胆视频 | 久草在线网址 | 激情亚洲一区二区三区 | 久久伊人精品热在75 | 久草在线视频新 | 成av人在线观看 | 国产精品欧美久久久久一区二区 | 欧美精品一区二区三区四区 | www.99re14.com| 亚洲 91| 黑人一区二区 | 99激情| 人成久久 | 亚洲va久久久噜噜噜久牛牛影视 | 欧美人成在线视频 | 国产瑟瑟视频 | 日韩一级视频 | 亚洲日本韩国精品 | 精品亚洲午夜久久久久91 | 成人9禁啪啪无遮挡免费 | 国产精品久久久久久久久久妇女 | 亚洲热线99精品视频 | 欧美一页| 久久99亚洲精品 | 毛片在线免费视频 | 黄色大片在线免费观看 | 黄片毛片一级 | 欧美激情视频一区二区免费 | 日本在线国产 | 欧美一级黄色片免费观看 | 中文字幕涩涩久久乱小说 | 中文字幕激情 | 快播av在线 | 一区二区美女视频 | 久久婷婷一区二区三区 | 久久精品一级 | 99国语露脸久久精品国产ktv | 国产精品jk白丝蜜臀av软件 |