之前接手老專案的時候有遇到一些的方法引數中使用了ref關鍵字加在傳參的引數前面的情況。對於新手,這裡介紹和講解一下ref的用法和實際效果。
clr中預設所有方法的引數python基礎教程
傳遞方式都是傳值,也就是說不管你傳遞的物件是值型別還是引用型別,在作為引數傳入到方法中時,傳遞的是原物件的副本。無論在方法中對該物件做何更改,都不影響外部的物件。
而使用了ref引數之後,傳遞的是物件的引用
對於值型別,傳遞的是值的引用,可以理解為值的位址
對於引用型別,傳遞的就是變數c#教程的引用,同樣可以理解成變數的棧位址
值型別物件使用ref引數示例
c# 控制台程式 值型別物件使用ref引數
class
program
public
static
void
doref
(ref
int txt)
public
static
void
donotref
(int txt)
}
結果
string型別物件使用ref引數示例
c# 控制台程式 string型別物件使用ref關鍵字傳參12
3456
78910
1112
1314
1516
1718
1920
2122
2324
class program
public static void useref(ref string txt)
public static void notuseref(string txt)
}結果
類物件使用ref傳參示例
c# code 控制台程式 類物件使用ref關鍵字傳參
class
program
; console.
writeline
(t0.text)
;useref
(ref t0)
; console.
writeline
(t0.text)
;notuseref
(t0)
; console.
writeline
(t0.text)
; console.
readline()
;}public
static
void
useref
(ref
testmodel tmodel)
public
static
void
notuseref
(testmodel tmodel)
}public
class
testmodel
}
結果
出處:
C 中 ref 關鍵字的認識和理解
之前接手老專案的時候有遇到一些的方法引數中使用了ref關鍵字加在傳參的引數前面的情況。對於新手,這裡介紹和講解一下ref的用法和實際效果。c 控制台程式 值型別物件使用ref引數12 3456 78910 1112 1314 1516 1718 1920 2122 2324 2526 classpr...
C 中 ref 關鍵字的認識和理解
之前接手老專案的時候有遇到一些的方法引數中使用了ref關鍵字加在傳參的引數前面的情況。對於新手,這裡介紹和講解一下ref的用法和實際效果。c 控制台程式 值型別物件使用ref引數12 3456 78910 1112 1314 1516 1718 1920 2122 2324 2526 class p...
關於C 中的ref和out關鍵字
c 中的傳值呼叫和傳引用調動。傳值呼叫是指在使用引數時,是把乙個值傳遞給函式使用的乙個變數。對函式中此變數的任何修改都不影響函式呼叫中指定的引數。using system using system.collections.generic using system.linq using system....