C#應(yīng)該知道的簡(jiǎn)單的知識(shí)點(diǎn)
來(lái)源:易賢網(wǎng) 閱讀:876 次 日期:2015-02-02 15:49:01
溫馨提示:易賢網(wǎng)小編為您整理了“C#應(yīng)該知道的簡(jiǎn)單的知識(shí)點(diǎn)”,方便廣大網(wǎng)友查閱!

1.本地變量

一看這個(gè)標(biāo)題你可能會(huì)一愣,這是個(gè)什么東東??磦€(gè)小例子:

static void main()

{

int a=10;

MyClass mc=new MyClass();

}

呵呵,這里的a與mc就是本地變量,它和字段一樣,也保存數(shù)據(jù)。字段通常保存和對(duì)象狀態(tài)有關(guān)的數(shù)據(jù),而創(chuàng)建本地變量經(jīng)常用于保存本地或臨時(shí)數(shù)據(jù)。呵呵,簡(jiǎn)單吧,但是它和實(shí)例字段有何區(qū)別:

實(shí)例字段

本地變量

生存期 從實(shí)例創(chuàng)建開(kāi)始,直到實(shí)例不再被訪問(wèn)

從它在塊中被聲明開(kāi)始,到塊執(zhí)行結(jié)束

隱式初始化 初始化成該類(lèi)的默認(rèn)值 沒(méi)有隱式初始化。如果變量在使用之前沒(méi)有被賦值,編譯器將報(bào)錯(cuò)

存儲(chǔ)區(qū)域 由于實(shí)例字段是類(lèi)的成員,所有的字段都存儲(chǔ)在堆里,無(wú)論它是指類(lèi)型還是引用類(lèi)型 值類(lèi)型:存儲(chǔ)在棧里

引用類(lèi)型:引用存儲(chǔ)在棧里,數(shù)據(jù)存放在堆里

2.var 關(guān)鍵字

我們知道var可以自動(dòng)推斷變量的類(lèi)型,如上代碼,我們可以發(fā)現(xiàn)在聲明開(kāi)始部分提供類(lèi)型名時(shí),編譯器能從初始化語(yǔ)句的右邊推斷出來(lái)它的類(lèi)型,所以,在聲明的開(kāi)始部分包括顯示的類(lèi)型名多余的。

為了避免這種多余,可以在聲明的開(kāi)始部分的顯示類(lèi)型名的位置使用新的關(guān)鍵字var。上面代碼可以改成:

static void main()

{

var a=10;

var mc=new MyClass();

}

3.值參數(shù)

使用值參數(shù),通過(guò)將實(shí)參的值復(fù)制到形參的方式把數(shù)據(jù)傳遞給方法。方法被調(diào)用時(shí),系統(tǒng)做如下操作:

在棧中為形參分配空間

將實(shí)參的值復(fù)制給形參

4.引用參數(shù)(ref)

不會(huì)為形參在棧上分配內(nèi)存

實(shí)際情況是,形參的參數(shù)名將作為實(shí)參變量的別名,指向相同的內(nèi)存位置

實(shí)參必須是變量,在用作實(shí)參前必須被賦值。如果是引用類(lèi)型變量,可以賦值一個(gè)引用或者null

5.輸出參數(shù)(out)

在方法內(nèi)部,輸出參數(shù)在能夠使用之前必須被賦值。這就意味著參數(shù)的初始值是不起作用的,所以沒(méi)有必要在方法調(diào)用前為參數(shù)賦值。

在方法返回之前,方法內(nèi)部任何路徑都必須為所有輸出參數(shù)進(jìn)行一次賦值。

代碼如下:

public void Add(out int outValue) { int var1=outValue+2; }上述代碼輸出參數(shù)在方法賦值之前被讀取將會(huì)報(bào)錯(cuò)。

6.屬性(set,get)

屬性是一個(gè)函數(shù)成員

它不為數(shù)據(jù)的存儲(chǔ)分配內(nèi)存

它可以執(zhí)行代碼

set訪問(wèn)器擁有一個(gè)單獨(dú)的隱式的值參,名稱(chēng)為Value,與屬性的類(lèi)型相同且擁有一個(gè)返回類(lèi)型void

get訪問(wèn)器沒(méi)有參數(shù),擁有一個(gè)與屬性類(lèi)型相同的返回類(lèi)型。

7.對(duì)象初始化語(yǔ)句

我們都知道創(chuàng)建一個(gè)對(duì)象是由new 后面跟著一個(gè)類(lèi)構(gòu)造函數(shù)及其參數(shù)列表組成。

對(duì)象初始化語(yǔ)句擴(kuò)展了創(chuàng)建語(yǔ)法,在表達(dá)式的尾部放置了一組成員初始化的語(yǔ)句。允許我們創(chuàng)建新的對(duì)象實(shí)例時(shí),設(shè)置字段和屬性的值。

該語(yǔ)法有兩種形式:一種形式是包括構(gòu)造函數(shù)的參數(shù)列表,另一種是不包括。注意第一種形式可以省略圓括號(hào)。

new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}

new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}

示例如下:

public static void main()

{

Point p1=new Point();

Point p2=new Point{X=4,Y=5,Z=6};

Point p3=new Point(9){X=7,Y=8};

}

public class Point

{

public int X=1;

public int Y=2;

public int Z=3;

public Point(int z) { Z=z; }

}

8.this關(guān)鍵字

this關(guān)鍵字在類(lèi)中使用,是對(duì)當(dāng)前實(shí)例的引用。它只能用在下列類(lèi)成員的代碼中

實(shí)例構(gòu)造函數(shù)

實(shí)例方法

屬性和索引器的實(shí)例訪問(wèn)權(quán)

由于靜態(tài)成員不是實(shí)例的一部分,所以不能在任何靜態(tài)函數(shù)成員的代碼中使用this關(guān)鍵字。更適當(dāng)?shù)恼f(shuō),this用于下列目的:

用于區(qū)分類(lèi)的成員和本地變量或參數(shù)

做為調(diào)用方法的實(shí)參

更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:C#應(yīng)該知道的簡(jiǎn)單的知識(shí)點(diǎn)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)