劉鐵猛C#(8)方法的定義萝衩、調(diào)用與調(diào)試(上)

函數(shù)在成為類的成員之后,就被成為方法没咙。

方法永遠(yuǎn)都是類或者結(jié)構(gòu)體(用struct生成)的成員

結(jié)構(gòu)體跟類很相似猩谊,也能定義字段,方法和構(gòu)造函數(shù)祭刚,都能實(shí)例化對(duì)象预柒,但是數(shù)據(jù)存儲(chǔ)不同队塘。

struct Books{ public string title; public string author; public string subject; public int book_id;};

https://blog.csdn.net/Circle__Gossoon/article/details/52126583

這兩種數(shù)據(jù)類型的本質(zhì)區(qū)別主要是各自指向的內(nèi)存位置不同。傳遞類的時(shí)候宜鸯,主要表現(xiàn)為是否同時(shí)改變了源對(duì)象。

1.結(jié)構(gòu)體是值類型遮怜,類是引用類型

雖然結(jié)構(gòu)體的初始化也使用了new操作符淋袖,可是結(jié)構(gòu)體對(duì)象依然分配在堆棧上而不是堆上

? ? ? ? 類在傳遞的時(shí)候,傳遞的內(nèi)容是位于托管內(nèi)存中的位置锯梁,結(jié)構(gòu)體在傳遞的時(shí)候即碗,傳遞的內(nèi)容是位于程序堆棧區(qū)的內(nèi)容。當(dāng)類的傳遞對(duì)象修改時(shí)陌凳,將同時(shí)修改源對(duì)象剥懒,而結(jié)構(gòu)體的傳遞對(duì)象修改時(shí),不會(huì)對(duì)源對(duì)象產(chǎn)生影響合敦。

堆棧的執(zhí)行效率要比堆的執(zhí)行效率高初橘,可是堆棧的資源有限,不適合處理大的邏輯復(fù)雜的對(duì)象充岛。所以結(jié)構(gòu)處理作為基類型對(duì)待的小對(duì)象保檐,而類處理某個(gè)商業(yè)邏輯

因?yàn)榻Y(jié)構(gòu)是值類型所以結(jié)構(gòu)之間的賦值可以創(chuàng)建新的結(jié)構(gòu),而類是引用類型崔梗,類之間的賦值只是復(fù)制引用

注:?

a.雖然結(jié)構(gòu)與類的類型不一樣夜只,可是他們的基類型都是對(duì)象(object),c#中所有類型的基類型都是object?

? b.雖然結(jié)構(gòu)的初始化也使用了New 操作符可是結(jié)構(gòu)對(duì)象依然分配在堆棧上而不是堆上,如果不使用“新建”(new)蒜魄,那么在初始化所有字段之前扔亥,字段將保持未賦值狀態(tài),且對(duì)象不可用?

2.結(jié)構(gòu)體不能從另外一個(gè)結(jié)構(gòu)或者類繼承谈为,本身也不能被繼承旅挤,雖然結(jié)構(gòu)沒有明確的用sealed聲明,可是結(jié)構(gòu)是隱式的sealed

類完全可擴(kuò)展的峦阁,除非顯示的聲明sealed 否則類可以繼承其他類和接口谦铃,自身也能被繼承

雖然結(jié)構(gòu)不能被繼承,可是結(jié)構(gòu)能夠繼承接口榔昔,方法和類繼承接口一樣

3.結(jié)構(gòu):不能包含顯式默認(rèn)構(gòu)造函數(shù)驹闰;沒有析構(gòu)函數(shù),沒有abstract和sealed(因?yàn)椴荒芾^承)撒会;不能有protected修飾符嘹朗,可以不使用new初始化

在結(jié)構(gòu)中初始化實(shí)例字段是錯(cuò)誤的

類: 有默認(rèn)的構(gòu)造函數(shù),有析構(gòu)函數(shù)诵肛,可以使用abstract和sealed屹培,有protected修飾符默穴,必須使用new初始化。

如何選擇結(jié)構(gòu)還是類

討論了結(jié)構(gòu)與類的相同之處和差別之后褪秀,下面討論如何選擇使用結(jié)構(gòu)還是類:?

1. 堆棧的空間有限蓄诽,對(duì)于大量的邏輯的對(duì)象,創(chuàng)建類要比創(chuàng)建結(jié)構(gòu)好一些?

2. 結(jié)構(gòu)表示如點(diǎn)媒吗、矩形和顏色這樣的輕量對(duì)象仑氛,例如,如果聲明一個(gè)含有 1000 個(gè)點(diǎn)對(duì)象的數(shù)組闸英,則將為引用每個(gè)對(duì)象分配附加的內(nèi)存锯岖。在此情況下,結(jié)構(gòu)的成本較低甫何。?

3. 在表現(xiàn)抽象和多級(jí)別的對(duì)象層次時(shí)出吹,類是最好的選擇

4. 大多數(shù)情況下該類型只是一些數(shù)據(jù)時(shí),結(jié)構(gòu)時(shí)最佳的選擇

方法調(diào)用的目的

1)復(fù)用 reuse

2)隱藏復(fù)雜的計(jì)算過程和邏輯

3)分解計(jì)算過程:自頂向下辙喂,逐步求精

方法的聲明就是方法的定義

方法的構(gòu)成包括

方法頭:

有效的修飾符組合 + 方法名 + (參數(shù)列表)

1)有效的修飾符組合?

2)方法的名字?

方法的命名必須是一個(gè)動(dòng)詞或動(dòng)詞短語捶牢,所有單詞的首字母大寫。

3)參數(shù)列表

參數(shù)指的是Parameter, 全稱 formal parameter 加派,簡稱“形參”叫确。形參會(huì)參與構(gòu)成方法的算法邏輯。跑龍?zhí)咨纸酰谛问缴现衩悖屗惴軌蛲ㄟ^編譯。

Parameter是一種變量娄琉,C#有7種變量次乓,其中有三種是參數(shù)(值參數(shù),引用參數(shù)和輸出參數(shù))

方法體

1)語句

可以是語句塊孽水,

也可以 甚至只有一個(gè)分號(hào) ";"票腰,說明它的算法還沒有實(shí)現(xiàn),被成為抽象方法女气。

2)返回值

void不需要返回值杏慰,其他要return

方法的調(diào)用

在方法名后跟上一對(duì)圓括號(hào),在圓括號(hào)內(nèi)寫入必要的實(shí)際參數(shù)(argument)炼鞠。

只有在方法后面加了圓括號(hào)缘滥,才算是調(diào)用了這個(gè)方法。

形參用于聲明變量谒主,實(shí)參意味著調(diào)用這個(gè)方法時(shí)的真實(shí)條件朝扼。實(shí)參必須和方法定義中的形參一致(數(shù)量一致,類型一致)

靜態(tài)方法和實(shí)例方法

所有非靜態(tài)方法都是實(shí)例方法霎肯。//public的實(shí)例方法擎颖,可以用 “方法實(shí)例+“.”" 來調(diào)用

靜態(tài)方法隸屬于類榛斯,跟類是綁定的。

public static 的靜態(tài)方法搂捧,必須要用 “類+“.”" 來調(diào)用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驮俗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子异旧,更是在濱河造成了極大的恐慌意述,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吮蛹,死亡現(xiàn)場離奇詭異,居然都是意外死亡拌屏,警方通過查閱死者的電腦和手機(jī)潮针,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倚喂,“玉大人每篷,你說我怎么就攤上這事《巳Γ” “怎么了焦读?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舱权。 經(jīng)常有香客問我矗晃,道長,這世上最難降的妖魔是什么宴倍? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任张症,我火速辦了婚禮,結(jié)果婚禮上鸵贬,老公的妹妹穿的比我還像新娘俗他。我一直安慰自己,他們只是感情好阔逼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布兆衅。 她就那樣靜靜地躺著,像睡著了一般嗜浮。 火紅的嫁衣襯著肌膚如雪羡亩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天周伦,我揣著相機(jī)與錄音夕春,去河邊找鬼。 笑死专挪,一個(gè)胖子當(dāng)著我的面吹牛及志,可吹牛的內(nèi)容都是我干的片排。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼速侈,長吁一口氣:“原來是場噩夢啊……” “哼率寡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起倚搬,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤冶共,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后每界,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捅僵,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年眨层,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了庙楚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡趴樱,死狀恐怖馒闷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叁征,我是刑警寧澤纳账,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站捺疼,受9級(jí)特大地震影響疏虫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帅涂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一议薪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧媳友,春花似錦斯议、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至焊唬,卻和暖如春恋昼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赶促。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工液肌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸥滨。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓嗦哆,卻偏偏與公主長得像谤祖,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子老速,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容