C#_各式各樣的參數(引用參數、輸出參數、數組參數、具名參數、可選參數)

引用參數

值參數和引用參數的區別在于傳參時是否會創建參數副本:值參數不會創建副本,而引用參數會創建副本。

換言之,值類型參數的參數與實體之間無直接關聯,修改參數不會對實體產生影響;引用類型參數的參數與實體可視為同一參數,修改參數會將修改同步至實體。

注:當函數并不修改參數引用,而只是修改被引用的對象時,值參數引用類型與引用參數引用類型在使用上并無區別,只是機制不同

使用方式:形參與實參用?ref?修飾

int num = 100;
public void Calculate(ref int x, int y)
{// 邏輯
}
Calculate(ref num, 50);

輸出參數

輸出參數與引用參數類似,其修飾符為?out?(只是在函數中必需對輸出參數執賦值操作,否則無法編譯通過)

int num = 100;
public void Calculate(out int x, int y)
{// 邏輯x = 1;
}Calculate(num, 10)

數組參數

設置數組參數后,函數可接收動態數量的參數(數組參數必需位于參數列表的末尾;數組參數允許不傳參)

使用方式:形參使用?params?修飾

public void Calculate(int x, int y, params int[] z)
{// 邏輯
}Calculate(1, 10, 1, 2, 3); // 1 2 3會被整合進z數組

具名參數

通過具名參數傳參,無需提前聲明變量(具名參數依據參數名與形參匹配,而不是次序)

使用方式:參數?:?值(傳參時)

public void Calculate(int x, int y)
{// 邏輯
}Calculate(x: 1, y: 10);

可選參數

設置可選參數后,參數具有默認值,可選擇不傳參;若對參數傳參,則覆蓋默認值

public void Calculate(int x = 1, int y = 1)
{// 邏輯
}Calculate(10);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697442.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697442.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697442.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

6.微格式

微格式 經典真題 知道什么是微格式嗎?談談理解。在前端構建中應該考慮微格式嗎? 微格式介紹 所謂微格式,是建立在已有的、被廣泛采用的標準基礎之上的一組簡單的、開放的數據格式。 具體表現是把語義嵌入到 HTML 中,以便有助…

通過SSH 可以訪問Ubuntu Desktop嗎?

你可以在 Ubuntu Desktop 上開啟 SSH 服務,以便其他機器可以通過 SSH 連接到你的服務器。以下是在 Ubuntu Desktop 上開啟 SSH 服務的步驟: 打開終端 (Terminal) 應用程序。 輸入以下命令安裝 OpenSSH 服務器: sudo apt-get update sudo ap…

多任務爬蟲(多線程和多進程)

在一臺計算機中,我們可以同時打開多個軟件,例如同時瀏覽網頁、聽音樂、打字等,這是再正常不過的事情。但仔細想想,為什么計算機可以同時運行這么多軟件呢? 這就涉及計算機中的兩個名詞:多進程和多線程。 同樣&#xf…

通信入門系列——鎖相環、平方環、Costas環

微信公眾號上線,搜索公眾號小灰灰的FPGA,關注可獲取相關源碼,定期更新有關FPGA的項目以及開源項目源碼,包括但不限于各類檢測芯片驅動、低速接口驅動、高速接口驅動、數據信號處理、圖像處理以及AXI總線等 本節目錄 一、鎖相環 1、壓控振蕩…

重磅!MongoDB推出Atlas Stream Processing公共預覽版

日前,MongoDB宣布推出Atlas Stream Processing公共預覽版。 在Atlas平臺上有興趣嘗試這項功能的開發者都享有完全的訪問權限,可前往“閱讀原文”鏈接點擊了解更多詳細信息或立即開始使用。 開發者喜歡文檔型數據庫的靈活性、易用性以及Query API查詢方…

使用k-近鄰算法改進約會網站的配對效果(kNN)

目錄 谷歌筆記本(可選) 準備數據:從文本文件中解析數據 編寫算法:編寫kNN算法 分析數據:使用Matplotlib創建散點圖 準備數據:歸一化數值 測試算法:作為完整程序驗證分類器 使用算法&…

js過濾取出對象中改變的屬性和值

朋友公司的面試題 ,取出對象中被改變的屬性和值 const obj1 { a: 1, b: 2, c: 4 }; const obj2 { a: 1, b: 2, c: 5 }; 方法1 function testFun(obj1, obj2) {const diff {};const keys1 Object.keys(obj1);const keys2 Object.keys(obj2);const allKyes keys…

【深度學習】Gemini 1.0 Pro 如何讓chatGPT扮演stable diffusion的提示詞工程師

google也出了一個chatGPT,免費申請使用: https://aistudio.google.com/app/prompts/new_chat https://github.com/google/generative-ai-docs/blob/main/site/en/tutorials/rest_quickstart.ipynb 模型信息: $ curl https://generativelan…

SpringCloud(14)之SpringCloud Consul

我們知道 Eureka 2.X 遇到困難停止開發了,所以我們需要尋找其他的替代技術替代Eureka,這一小 節我們就講解一個新的組件Consul。 一、Consul介紹 Consul 是 HashiCorp 公司推出的開源工具,用于實現分布式系統的服務發現與配置。與其它分布式…

kali xrdp

Kali Linux 使用遠程桌面連接——xrdp&xfce_kali xfce桌面-CSDN博客 Ubuntu/Debian/Kali xrdp遠程桌面黑屏/空屏/無畫面解決辦法 - 知乎 (zhihu.com) sudo apt-get install xrdp -y sudo apt-get install xfce4 -ysudo systemctl enable xrdp --now systemctl status xrd…

中級.NET開發工程師面試經歷

文章目錄 前言面試題目(只記錄了還記得的部分)一.簡單說下.NETCORE的生命周期?二.C#如何保證在并發情況下接口不會被重復觸發?三.引用類型和值類型有什么區別?四.那怎樣能讓引用類型和值類型一樣,在賦值的時…

【Latex】TeXstudio編譯器選項修改

1、動機 編譯國科大博士畢業答辯論文latex時報錯 Package ctable Error: You must load ctable after tikz. 2、方法 經過搜索發現是因為這是中文模板,編譯的選項不對,需要從 PDFLaTeX 調整到 XeLaTeX。于是操作如下 1)點擊選項 2&#xf…

linux 文件目錄操作命令【重點】

目錄 ls cd cat more tail【工作中使用多】 mkdir rmdir rm ls 作用: 顯示指定目錄下的內容 語法: ls [-al] [dir] 說明: -a 顯示所有文件及目錄 (. 開頭的隱藏文件也會列出) -l 除文件名稱外,同時將文件型態(d表示目錄,-表示文件)、權限…

SpringMVC POST請求傳參 屬性名字母大寫注入失敗解決方案

問題描述: 我現在有一個接口通過一個實體(RequestBody)去接收一系列的參數,前端傳參為一個JSON字符串,但是當我的屬性名以大寫字母開頭(有的中間還有下劃線),或者第二個字母是大寫字母的時候,我發現后端接收不到參數值…

Flask——基于python完整實現客戶端和服務器后端流式請求及響應

文章目錄 本地客戶端Flask服務器后端客戶端/服務器端流式接收[打字機]效果 看了很多相關博客,但是都沒有本地客戶端和服務器后端的完整代碼示例,有的也只說了如何流式獲取后端結果,基本沒有講兩端如何同時實現流式輸入輸出,特此整…

C++字符串類

C中有兩種主要的字符串類&#xff1a;std::string 和 std::wstring。 std::string std::string 是 C 標準庫中用于處理 ASCII 字符串的類。它提供了豐富的方法來操作字符串&#xff0c;包括插入、刪除、查找子串、比較等功能。使用 std::string 需要包含頭文件 <string>…

8.CSS層疊繼承規則總結

CSS 層疊繼承規則總結 經典真題 請簡述一下 CSS 中的層疊規則 CSS 中的層疊繼承規則 在前面《CSS屬性的計算過程》中&#xff0c;我們介紹了每一個元素都有都有所有的屬性&#xff0c;每一個屬性都會通過一系列的計算過程得到最終的值。 這里來回顧一下計算過程&#xff0…

Node.js中如何處理異步編程

在Node.js中&#xff0c;處理異步編程是至關重要的技能。由于Node.js的單線程執行模型&#xff0c;異步編程可以極大地提高程序的性能和響應速度。本文將介紹幾種常見的異步編程處理方式&#xff0c;并附上示例代碼&#xff0c;幫助您更好地理解和應用異步編程技術。 回調函數…

家政小程序開發,引領家庭服務新時代的科技革命

隨著科技的飛速發展&#xff0c;人們的生活方式正在發生深刻的變化。其中&#xff0c;家政服務作為日常生活的重要組成部分&#xff0c;也在經歷著一場由小程序技術引領的科技革命。本文將探討家政小程序的發展趨勢、功能特點以及對家庭服務的深遠影響。 一、家政小程序的發展…

Linux命令-chattr命令(用來改變文件屬性)

說明 chattr命令 用來改變文件屬性。這項指令可改變存放在ext2文件系統上的文件或目錄屬性&#xff0c;這些屬 性共有以下8種模式。 語法 chattr(選項)選項 a&#xff1a;讓文件或目錄僅供附加用途&#xff1b; b&#xff1a;不更新文件或目錄的最后存取時間&#xff1b; c…