<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
class Program { static void Main(string[] args) { int a = 10; Add(a); Console.WriteLine("傳遞之後的值為:" + a); Console.ReadKey(); } private static void Add(int i) { Console.WriteLine("傳遞之前的值為:" + i); i = i + 10; } }
結果:
可見,值型別引數在被方法呼叫的時候,是對本身範例的拷貝和操作,在方法呼叫前後引數值不變。
當參照型別引數傳遞時,是對託管堆上物件範例內容的操作。
也就是參照型別按值傳遞,傳遞的是參照變數的指標,指向託管堆上的物件範例。
class Program { static void Main(string[] args) { Student student = new Student(); Add(student); Console.WriteLine("引數傳遞之後的值為:" +student._score); Console.ReadKey(); } private static void Add(Student s) { Console.WriteLine("引數傳遞之前的值為:" + s._score); s._score = 90; } } public class Student { public int _score = 80; }
結果
可見,參照型別引數在被方法呼叫的時候,是針對變數的參照的操作,一旦參照物件內容發生改變,原來變數的值也隨著改變。
參照型別引數按值傳遞和按參照傳遞的不同之處:
另外,值型別也有按參照傳遞,這時候,傳遞的是值型別的地址。
class Program { static void Main(string[] args) { int i = 100; string str = "one"; ChangeByValue(ref i); ChangeByRef(ref str); Console.WriteLine(i); Console.WriteLine(str); Console.ReadKey(); } private static void ChangeByValue(ref int iValue) { iValue = 200; } private static void ChangeByRef(ref string sValue) { sValue = "One more"; } }
可見,不管是值型別,還是參照型別,加入關鍵字ref作為引數,就意味著是對引數地址的操作,即託管堆上範例地址的改變。
另外:
out告訴編譯器,引數會在方法內部初始化,而在方法之前不需要初始化。
int x; Foo(out x);
ref告訴編譯器,引數在方法之前必須初始化。
int y = 0; Foo(ref y);
class Program { static void Main(string[] args) { string str = "Old String"; Console.WriteLine("傳遞之前的值為:" + str); ChangeStr(str); Console.WriteLine("傳遞之後的值為:"+str); Console.ReadKey(); } private static void ChangeStr(string astr) { astr = "Change String"; } }
結果:
可見,雖然string是參照型別,但按值傳遞的表現和值型別按值傳遞的表現一樣。
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對it145.com的支援。如果你想了解更多相關內容請檢視下面相關連結
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45