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 形參的型別決定了形參實參互動的方式,如形參是引用型別,他將繫結到對應的實參上,引用形參是...