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 要自己宣告 代表字串中的每個字元
留言
張貼留言