初識c 屬性和引數傳遞

2021-08-07 15:16:54 字數 1486 閱讀 4496



1.屬性

作用:1.校驗資料的合法性

2.保護內部欄位不被破壞(封裝性)

3.屬性是為了攔截字段

4.屬性是為了攔截欄位在賦值的時候,做一些操作來保護欄位的合法性

實際上屬性就是特殊的方法,因為屬性內部提供了兩個構造器

乙個是set構造器,乙個是get構造器

我們可以認為:

set構造器實際上就是乙個方法而已,有參無返回值方法

value就是引數

get構造器也是方法,無參有返回值

屬性的語法:

//set:出現賦值運算的時候會呼叫set構造器

//get{}

//get:取值的時候會呼叫get構造器

//注意,屬性的內部至少存在乙個構造器

//如果只有set,沒有get,該屬性為只寫

//如果只有get,沒有set,該屬性為唯讀

//區分呼叫set還是get

//是否產生賦值運算(就是看有沒有等於號)是判斷呼叫set還是get的依據

//屬性實際上是特殊的方法

//set構造器,是有引數沒有返回值的特殊方法,引數為系統關鍵字value

//get構造器,是無引數有返回值的特殊方法,返回的是字段

//需要注意的是屬性不一定和字段是成對兒出現的,兩者可以同時存在,

//當然也可以不同時存在

}2.引數傳遞(實參-->形參)

第一種情況:值傳遞

值型別作為實參傳遞給形參的時候,傳遞的是值得本身,而不是值的位址.

代表:int float double bool struct enum等常見值型別

第二種情況:引用傳遞(位址傳遞)

引用型別作為實參傳遞給形參的時候,傳遞的是位址.

當然這裡面string是乙個特殊範例,string雖然本身為引用型別,但是

作為實參傳遞的時候,預設是值傳遞

代表:陣列 物件

ref指標:

作用:將值傳遞改為位址傳遞

用途:如果你想改變乙個值型別本身的值,那麼在傳遞的時候需要加上ref

如果你在引數傳遞的時候,僅僅是為了運算不需要改變原值,那麼不需要加上ref

out關鍵字:

作用:將某個值儲存到乙個變數中

用途:儲存結果,實際上相當於函式有返回值.

3.記憶體分布

棧:棧區儲存變數,比如int a = 10;

a變數存於棧,10存在常量區.

a實際上儲存的是常量區10這個值所在的首位址

堆:一般用來存放物件資訊(字段,屬性,方法,索引器)

4.new關鍵字

new 乙個類例項的時候,系統會在堆區開闢新的記憶體空間.

new 乙個結構體例項的時候,系統不會在堆區開闢新的記憶體空間.

結構體適合小型資料結構,就是不需要耗費記憶體的那種,常用來做工具使用

比如說向量(x,y,z)

類適合大型資料結構,比如玩家類,需要常駐記憶體.

結構體不能被繼承,但是類可以.

c 引數傳遞

引數型別分為int,ref,out三種,預設為int.int型別在字方法中修改了對應變數後,主方法中的值不會發生變化.ref型別在方法中修改了對應變化後,主方法中的值也會發生變化.out主方法中對應的變數不需要初始化.例子 using system using system.collections....

C 引數傳遞

2.指標與引用區別 3.引數為指標的指標或指標的引用 將實參複製乙份給形參,形參為函式的區域性變數,因此函式對形參操作對實參沒有影響。若傳遞物件會產生物件副本,會呼叫拷貝建構函式,操作完後要呼叫析構函式。形參為指向實參位址的指標,其也算一種按值傳遞,只不過是將實參的位址作為引數傳遞給形參,因此函式對...

c 引數傳遞

引數傳遞 形參 parameter 和實參 argument int num int a,int b int num int a,int b 在函式的宣告或者定義裡,由由0個或多個形參組成的列表。intmain 形參的型別決定了形參實參互動的方式,如形參是引用型別,他將繫結到對應的實參上,引用形參是...