国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C#圖解教程】 第六章 方法(上)

這篇具有很好參考價值的文章主要介紹了【C#圖解教程】 第六章 方法(上)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

方法的結(jié)構(gòu)

方法是一塊具有名稱的代碼,在類和結(jié)構(gòu)中都經(jīng)常用到

【C#圖解教程】 第六章 方法(上)

局部變量

局部變量位于方法內(nèi)部,在方法中聲明時產(chǎn)生,在方法執(zhí)行結(jié)束時結(jié)束

【C#圖解教程】 第六章 方法(上)

類型推斷與var關(guān)鍵字

某些情況下,在聲明的開始部分包含類型名是多余的,因為可以通過初始化看出是什么類型,所以這時可以統(tǒng)一使用var關(guān)鍵字來聲明:

【C#圖解教程】 第六章 方法(上)

需要注意的是var只能用于局部變量,并且需要附帶初始化

嵌套塊中的局部變量

這里與C/C++不同的是,C#中即使是嵌套的不同的塊也不可以使用相同的局部變量名,嵌套塊中局部變量的生存期如下圖:

【C#圖解教程】 第六章 方法(上)

局部常量

【C#圖解教程】 第六章 方法(上)

需要注意的是,局部常量必須在聲明時初始化,且之后值不變。這里的const不是修飾符(如ref、out),而是類型聲明的一部分,其他都跟局部變量一致

返回值

通常方法被調(diào)用后可以返回一個值,要返回值時需要為方法設(shè)置一個返回類型,如果為空則設(shè)置為void,返回類型可以是自定義類型。

【C#圖解教程】 第六章 方法(上)

void方法通常不需要返回語句,但是使用return;提前退出方法塊也是常用的方法。

【C#圖解教程】 第六章 方法(上)

局部函數(shù)

也叫做本地函數(shù),意思是可以在函數(shù)體內(nèi)部定義函數(shù),這樣的好處是為了簡化函數(shù)邏輯,因為有事函數(shù)本身就是另一個函數(shù)的部分邏輯,這部分目前用的比較少。

【C#圖解教程】 第六章 方法(上)

參數(shù)

本節(jié)比較重要,且較復(fù)雜

形參

形參是局部變量,但是是在方法的參數(shù)列表中聲明,而不是在塊中

實參

在方法調(diào)用時用于初始化形參的參數(shù)就是實參,實參應(yīng)與形參類型匹配或可發(fā)生隱式轉(zhuǎn)換

【C#圖解教程】 第六章 方法(上)

值參數(shù)

值參數(shù)指的是一類函數(shù)參數(shù)類型,這種類型的特點是直接在棧中復(fù)制實參作為形參,為形參分配內(nèi)存。

當實參為值類型時,因為值參數(shù)會拷貝一個副本來執(zhí)行方法,所以并不會影響值類型的實參;

當實參為引用類型時,值參數(shù)會拷貝引用類型的副本,但是此時副本作為地址顯然指向同一塊堆中的位置,所以此時對形參執(zhí)行的方法會影響實參的值。

【C#圖解教程】 第六章 方法(上)

由上面這段代碼可見,值類型不受方法影響,而引用類型發(fā)生了變化。

注意:這里值類型與值參數(shù)要區(qū)別開,前者是相對于內(nèi)存而言的數(shù)據(jù)項類型,值類型表示類型本身包含其值;而值參數(shù)這里表示一種函數(shù)的參數(shù)類型。

【C#圖解教程】 第六章 方法(上)

引用參數(shù)

使用引用參數(shù)時,必須加上ref作為修飾符,且參數(shù)應(yīng)為變量而不是實際值

使用時容易出錯的一點是需要在聲明和調(diào)用時都加上ref

【C#圖解教程】 第六章 方法(上)

與值參數(shù)在棧中為形參分配內(nèi)存不同,引用參數(shù)不會為形參分配內(nèi)存,而是將形參作為實參的別名

【C#圖解教程】 第六章 方法(上)

【C#圖解教程】 第六章 方法(上)

ref返回和ref局部變量

ref局部變量可以為變量創(chuàng)建別名,即使是值類型的變量,這樣對原變量和別名的改動都會同步。

聲明方式是:

【C#圖解教程】 第六章 方法(上)

實際上ref局部變量經(jīng)常與ref返回一起使用。

ref返回使方法返回變量的引用而不是變量值,聲明方法為:

【C#圖解教程】 第六章 方法(上)

【C#圖解教程】 第六章 方法(上)

ref返回的使用有很多限制:

【C#圖解教程】 第六章 方法(上)

引用類型作為值參數(shù)

引用類型作為值參數(shù)時,前面提到了,會復(fù)制一份實參的地址,后面也是對實參執(zhí)行方法,但是如果創(chuàng)建一個新對象并賦值給形參,就會將形參與實參之間的聯(lián)系轉(zhuǎn)換為形參與新對象之間的聯(lián)系,并且這個新對象是局部的,在方法執(zhí)行完畢時就會釋放,所以創(chuàng)建新對象并賦值給形參之后就會切斷形參與實參的聯(lián)系。

【C#圖解教程】 第六章 方法(上)

【C#圖解教程】 第六章 方法(上)

在方法開始時與前面一致,形參實參都指向堆中同一對象,但當方法分配新對象給形參后就會切斷與實參的聯(lián)系,方法調(diào)用之后,形參和新對象都會消失。

引用類型作為引用參數(shù)

引用類型作為引用參數(shù)時,根據(jù)前面的內(nèi)容,引用參數(shù)的形參是實參的別名,所以也是指向堆中同一對象,但當方法分配新對象給形參后,因為形參是實參的別名,實參也會指向新對象,此時形參實參都指向新對象,當方法調(diào)用完成后形參消失,實參指向新對象。

【C#圖解教程】 第六章 方法(上)

【C#圖解教程】 第六章 方法(上)文章來源地址http://www.zghlxwxcb.cn/news/detail-467935.html

到了這里,關(guān)于【C#圖解教程】 第六章 方法(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 算法與數(shù)據(jù)結(jié)構(gòu) 第六章 圖(詳解)

    算法與數(shù)據(jù)結(jié)構(gòu) 第六章 圖(詳解)

    目錄 一、判斷題 二、選擇題? 在開始之前,先為大家推薦四篇介紹該章四個主要算法的的文章,供大家參考。 Dijkstra算法求最短路徑:Dijkstra算法原理_平凡的L同學(xué)的博客-CSDN博客_dijiesitela Floyd算法求最短路徑:Floyd算法求最短路徑 Prim算法求最小生成樹:Prim算法求最小生成樹

    2024年02月09日
    瀏覽(32)
  • 數(shù)據(jù)結(jié)構(gòu)與算法分析 第六章 圖 作業(yè)講解

    數(shù)據(jù)結(jié)構(gòu)與算法分析 第六章 圖 作業(yè)講解

    ?參考教材: 《數(shù)據(jù)結(jié)構(gòu)(C語言版 第2版)》 嚴蔚敏,李冬梅,吳偉民編著,人民郵電出版社,2022年版。 截圖未標明出處均為原創(chuàng)或取自《數(shù)據(jù)結(jié)構(gòu)(C語言版 第2版)》~ ? 本文對應(yīng)的作業(yè)題講解視頻: ? 數(shù)據(jù)結(jié)構(gòu)與算法分析作業(yè)講解視頻合集 https://www.bilibili.com/video/BV1N

    2024年02月03日
    瀏覽(23)
  • 【RabbitMQ教程】第六章 —— RabbitMQ - 延遲隊列

    【RabbitMQ教程】第六章 —— RabbitMQ - 延遲隊列

    ?????????????????????????????????????????????????????????????????? ?? 【 R a b b i t M Q 教 程 】 第 六 章 — — R a b b i t M Q ? 延 遲 隊 列 color{#FF1493}{【RabbitMQ教程】第六章 —— RabbitMQ - 延遲隊列} 【 R a b b i t M Q 教 程 】 第 六 章 — — R a

    2024年02月09日
    瀏覽(15)
  • python筆記:第六章函數(shù)&方法

    由系統(tǒng)提供,直接拿來用或是導(dǎo)入模塊后使用 函數(shù)是結(jié)構(gòu)化編程的核心 使用 def 來定義函數(shù) 為函數(shù)添加文檔字符串 如果不自定義返回值,則無返回值 return 用明確的變量組來接受函數(shù)輸出值,便于后期查看(序列解包),不用元組 標明函數(shù)的返回值 注意:這

    2024年02月13日
    瀏覽(31)
  • 王道計算機考研 數(shù)據(jù)結(jié)構(gòu)C語言復(fù)現(xiàn)-第六章-隊列

    ?這篇文章收錄了王道考研課程中涉及的數(shù)據(jù)結(jié)構(gòu)的所有代碼。此外,本博客可能會添加一些額外的代碼(不僅限于王道考研),因為408考試中會頻繁考察一些冷門的知識點,所以這篇博客會涵蓋所有相關(guān)的代碼。這也是我數(shù)據(jù)結(jié)構(gòu)的第一輪復(fù)習(xí),希望能與大家共同進步。由

    2024年01月21日
    瀏覽(24)
  • Odoo17入門教程第六章 UI

    Odoo17入門教程第六章 UI

    現(xiàn)在我們已經(jīng)創(chuàng)建了新模型及其 相應(yīng)的,是時候了 與用戶界面交互。 在本章結(jié)束時,我們將創(chuàng)建幾個菜單以訪問默認列表 和窗體視圖。 參考 :與此主題相關(guān)的文檔可以在數(shù)據(jù)文件中找到。 在第五章:安全性-簡介中,我們通過 CSV 文件添加了數(shù)據(jù)。CSV 當要加載的數(shù)據(jù)具有

    2024年04月23日
    瀏覽(12)
  • 第六章 塊為結(jié)構(gòu)建模 P1|系統(tǒng)建模語言SysML實用指南學(xué)習(xí)

    第六章 塊為結(jié)構(gòu)建模 P1|系統(tǒng)建模語言SysML實用指南學(xué)習(xí)

    僅供個人學(xué)習(xí)記錄 塊是SysML結(jié)構(gòu)中的模塊單元,用于定義一類系統(tǒng)、部件、部件互連,或者是流經(jīng)系統(tǒng)的項,也用于定義外部實體、概念實體或其他邏輯抽象 塊定義圖用于定義塊以及塊之間的相互關(guān)系,如層級關(guān)系,也用于規(guī)定塊的實例,包括配置和數(shù)據(jù)值。內(nèi)部塊圖用于根

    2024年02月05日
    瀏覽(14)
  • verilog數(shù)字系統(tǒng)設(shè)計教程(夏聞宇)|第一章-第六章

    verilog數(shù)字系統(tǒng)設(shè)計教程(夏聞宇)|第一章-第六章

    早聽聞此書大名,雖然有些verilog的編程經(jīng)驗,今天來系統(tǒng)的學(xué)習(xí)下verilog,完善知識體系,提升編程能力。本文章只當自己做筆記使用,記錄自己沒掌握的重難點,和大家一起學(xué)習(xí)。 目錄 第一章? 第二章 verilog語法 第三章 模塊的結(jié)構(gòu)、數(shù)據(jù)類型、變量和基本運算符號 1.常量

    2024年03月18日
    瀏覽(23)
  • 《計算機網(wǎng)絡(luò):自頂向下方法》學(xué)習(xí)筆記——第六章:鏈路層

    《計算機網(wǎng)絡(luò):自頂向下方法》學(xué)習(xí)筆記——第六章:鏈路層

    兩種截然不同類型的鏈路層信道 廣播信道 :這種信道用于連接有線局域網(wǎng)、衛(wèi)星網(wǎng)和混合光纖同軸電纜接入網(wǎng)中的多臺主機。 點對點通信鏈路 :這在諸如長距離鏈路連接的兩臺路由器之間,或用戶辦公室計算機與它們所連接的鄰近以太網(wǎng)交換機之間等場合經(jīng)常能夠發(fā)現(xiàn)。

    2024年02月03日
    瀏覽(27)
  • 《軟件工程教程》(第2版) 主編:吳迪 馬宏茹 丁萬寧 第六章課后習(xí)題參考答案

    《軟件工程教程》(第2版) 主編:吳迪 馬宏茹 丁萬寧 第六章課后習(xí)題參考答案

    (1)為了提高測試的效率,應(yīng)該( D )。 ????????A.隨機地選取測試數(shù)據(jù) ?????? B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù) ?????? C.在完成編碼以后制定軟件的測試計劃 ?????? D.選擇發(fā)現(xiàn)錯誤的可能性大的數(shù)據(jù)作為測試數(shù)據(jù) (2)軟件測試的目的是( B )。 ?????? A.評價

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包