C#_捨麼是 ref (傳址呼叫)捨麼是out(傳出呼叫) _這兩個參數用在哪裡很常看到有人寫他們


我們就寫一個簡單的增加一歲的函數

記得前面要補加  static  由於C#主程式中main()是屬於靜態方法
You can't access non-static members from a static method. 

(Note that Main() is static, which is a requirement of .Net)


參考自:
http://stackoverflow.com/questions/2505181/error-an-object-reference-is-required-for-the-non-static-field-method-or-prop






你發現都沒變主要原因是因為

宣告方法若無在前面加上  任何  ref  及  out 的 字眼

默認就會是   call  by  value(傳值呼叫)

在call  by  value(傳值呼叫) 中  是把實際參數複製一份作為形式參數傳送給對方使用。


因此  形式參數  與  實際參數  是兩個獨立的 變數

更改形式參數的值 並不會改變影響主程式中實際參數的值

所以你的輸出結果永遠不會變



這裡我在前頭補上  ref  字眼


ref 應用在內部隊外部的值進行更改

ref  必須先初始化,因為我們是參考,所以必須先有內容,才可參考


============================================================






out 一般用在函數有多個返回值得情況

out 可以不用在外面先初始化,但是一定要在 函數內做初始化(賦予值)

不能在  傳出呼叫的方法中 接收傳入參數
會出現錯誤




我們寫一個  字串示例

這裡介紹一個   TryParse 的方法


它的返回值為  一個 bool

轉換 一串都是數字的string 為 int 32  bit 有符號的 型態
如果成功就回傳  true   ,   i  要自己宣告 代表字串中的每個字元


























留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header