C 中 ref 關鍵字的認識和理解

2021-10-12 10:06:14 字數 1623 閱讀 5343

之前接手老專案的時候有遇到一些的方法引數中使用了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....