【入門級】-[資料型態]-修飾詞

閱讀時間約 6 分鐘
由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容,「可以在哪些範圍去做存取用途。」,在開始介紹前先介紹一個小小程式結構概念
程式結構

一、存取修飾詞


這個是在同一專案下,對於namespace(命名空間)、class(類別)、field(欄位)、Method(方法)去做範圍存取的定義,修飾詞內容如下圖:
存取修飾詞
對於protected、internal、protected internal部分使用狀況可能會比較難懂,這邊用圖來表示或許會好懂一些。
protected存取使用
internal存取使用
protected internal存取使用
以上就是存取修飾詞的介紹。
那麼再看一下最上面那個程式結構的例子,大家有注意到嗎!Field(欄位)那邊的宣告,有的沒有加入存取修飾詞,那這樣它存取使用會是在哪兒呢?倘若說有些沒有加入修飾詞的話,在C#中它會有預設修飾詞,如下所示:
在namespace(命名空間) → 預設修飾詞為 public
在Class(類別)      →預設修飾詞為internal
在Field(欄位)宣告     →預設修飾詞為privated

另外還有一個static也是一個修飾詞,有時候會出現
Public static...
Private static...
Static...
這樣的形式,這是用來宣告靜態成員的部分。

二、參數修飾詞

參數修飾詞
很常在撰寫程式時多多少少都會用到傳遞參數的部分,像最上面那個例子
private void talk(ref int dogNum,ref string DogName)
{
...
}
這邊使用的是ref可以將變數名稱的值帶進來,那麼參數out可以把值帶出去,但是要先給予值。
對於傳遞參數部分有三種方法

1. Call By Value(傳值呼叫):

傳遞方會將實際參數複製一份給接收方,複製那份參數就稱為虛擬參數,實際參數和虛擬參數各佔據不同的記憶體位置。Ex:
Private void main()
{
  string DogName = ”吉利”;
  string B = talk(DogName);
  string C = DogName;
}
private void talk(string dogName)
{
  string A = dogName;
  dogName = ”湯姆”;
  return dogName;
}
此時,就可以將GogName的值直接傳進talk方法中,再經過talk方法中的事情後,return回去就又將改變過的值傳回main()裡
A、B、C的結果值分別為:
A:吉利
B:湯姆
C:吉利
說明:
(1) 從main()開始執行,先給予DogName=”吉利”這樣的值後,再執行下一行,什麼樣的值要傳給B呢?

(2) 就跑進talk方法來看,此時會將DogName的值傳進talk方法內。

(3) 那麼我們就看到talk方法,開始執行第一行,A所得到的值就會是「吉利」

(4) 繼續再到下一行,修改dogName的值為「湯姆」後,最後再return回去

(5) 再回到main()中,得知talk(DogName)的結果為「湯姆」,因此B的值就為「湯姆」

(6) 那麼由於此方法是傳值呼叫,因此會佔據不同的記憶體位置,故C的值為「吉利」

2. Call By Reference(參考呼叫):

是傳遞參數記憶體的位置給接收方,由於是同一個記憶體位置,所以變動的會是同一個記憶體位置的值,彼此就會互相影響。Ex:
Private void main()
{
  string DogName = ”吉利”;
  string B = talk(ref DogName);
  string C = DogName;
}
private void talk(ref string dogName)
{
  string A = dogName;
  dogName = ”湯姆”;
  return dogName;
}
此時,就可以將DogName的值直接傳進talk方法中,再經過talk方法中的事情後,return回去就又將改變過的值傳回main()裡。跟上一個差別是它是使用同一個記憶體位置,因此會覆蓋過去。
A、B、C的結果值分別為:
A:吉利
B:湯姆
C:湯姆

3. Output parameter(傳出參數):

實際參數和虛擬參數都是佔用相同記憶體位置,Ex:
Private void main()
{
  string DogName;
  string DogLike;
  string B = talk(out DogName,out DogLike);
  string C = DogName;
  string D = DogLike;
}
private void talk(out string dogName,out string dogLike)
{
  dogName = ”吉利”;
  dogLike = ”骨頭”;
  string msg = dogName + ”愛吃” + dogLike ;
  return msg;
}
此時,在main()中可以不用先設定值,直到進入talk方法中時,再給予值即可,再talk經過一系列過程後,除了可以把參數中的值給帶出去外,還可以把return的值也一併帶出去
B、C、D的結果值分別為:
B:吉利愛吃骨頭
C:吉利
D:骨頭
說明:
(1) 從main()開始執行,先宣告DogName、DogLike,此時可以不用先設定值,接著進入下一行傳什麼值給B呢?

(2) 就進入talk方法來看,這邊有給予dogName、dogLike的值,接著下一行這邊是將字串做串接後再賦予msg值。

(3) 將msg 值return回去

(4) 再看回main()中,此時B接收到的就會是msg的值也就是「吉利愛吃骨頭」,那麼dogName、dogLike的值也會一併傳回去喔!

(5) 接著往下看C、D輸出的值就是C是「吉利」D是「骨頭」

參考內容:
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
21會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
橙果杏的沙龍 的其他內容
這次分享的是常數、變數、宣告與初始化。 [常數]就是固定不變的數,如:PI=3.14 [變數]顧名思義就是會改變的數,如:y=2x (在數學中x確定後y才會確定,因此x為自變數,y為應變數,x、y都屬於變數) 一、常數   常數在定義的時候,一開始就必須指定好資料型別並且給予值,因為它在整個程式在執
這次分享資料形態中的資料型別部分,在VC#流程架構介紹中有提到它如同中文有不同的詞性,那C#程式中有哪些型別呢?我們就來看一看。 一、常用的資料型別 當然還有自訂義的型別這就要看怎麼定義了,之後看內容狀況再來提,那麼資料型態是為了要做宣告用途,告訴電腦你的資料是屬於什麼類別的,這樣在做後續資料時程式
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
一、Visual Studio是什麼?   Viusal Studio亦是Microsoft Visual Studio,簡稱VS或MSVS,它是微軟所開發的一個基本完整的開發工具,它有三個版本Community(社群版)、Professional(專業版)、Enterprise(企業版),
一、C#介紹 二、為什麼要學C# 三、.NET Framework介紹
這邊要來跟大家介紹C#,使用的軟體會是Visual Studio 2017版本 介紹內容架構可以分六大階段:入門級、基礎級、中低階級、中階級、中高階級、高階級 在正式開始寫程式前,要先了解一些基本概念哦! 就如同學中文前要先了解ㄅㄆㄇㄈ或羅馬拼音之類的,程式也是一樣道理,先把基本概念了解後再來開始
這次分享的是常數、變數、宣告與初始化。 [常數]就是固定不變的數,如:PI=3.14 [變數]顧名思義就是會改變的數,如:y=2x (在數學中x確定後y才會確定,因此x為自變數,y為應變數,x、y都屬於變數) 一、常數   常數在定義的時候,一開始就必須指定好資料型別並且給予值,因為它在整個程式在執
這次分享資料形態中的資料型別部分,在VC#流程架構介紹中有提到它如同中文有不同的詞性,那C#程式中有哪些型別呢?我們就來看一看。 一、常用的資料型別 當然還有自訂義的型別這就要看怎麼定義了,之後看內容狀況再來提,那麼資料型態是為了要做宣告用途,告訴電腦你的資料是屬於什麼類別的,這樣在做後續資料時程式
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
一、Visual Studio是什麼?   Viusal Studio亦是Microsoft Visual Studio,簡稱VS或MSVS,它是微軟所開發的一個基本完整的開發工具,它有三個版本Community(社群版)、Professional(專業版)、Enterprise(企業版),
一、C#介紹 二、為什麼要學C# 三、.NET Framework介紹
這邊要來跟大家介紹C#,使用的軟體會是Visual Studio 2017版本 介紹內容架構可以分六大階段:入門級、基礎級、中低階級、中階級、中高階級、高階級 在正式開始寫程式前,要先了解一些基本概念哦! 就如同學中文前要先了解ㄅㄆㄇㄈ或羅馬拼音之類的,程式也是一樣道理,先把基本概念了解後再來開始
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整理與人力資訊取得 區域樞紐分析+環圈圖 (本集教學) 性別樞紐分析+圖像
Thumbnail
EXCEL設計新思維,即日起新增了一個新的房間【EXCEL儀表板】,什麼是EXCEL儀表板呢? Excel 儀表板是一種視覺化工具,用於展示和分析數據,幫助用戶快速理解和決策。以下是Excel儀表板的主要特點和功能簡介: 特點 視覺化展示: 使用圖表、圖形和表格來直觀展示數據。 常見的圖
Thumbnail
《持續買進》用淺顯易懂的方式搭配豐富的圖表帶領讀者可以很簡單的梳理一些基礎的投資理財觀念,也可以從中獲得一些個人財務價值觀的啟發,蠻適合做為簡單入門的投資理財書籍,本篇用簡單摘要的方式分享書中提出的觀念給大家。
Thumbnail
在MC的QuoteManager中,可以讓使用都新增自己的數據源,使用者可在QuoteManager的「工具」選單中,點選「數據源」,進行自己所要接收的數據源。 在數據源的設定視窗中,列出目前提供的數據源種類,往下捲動,找到「Universal DDE」這個類型後,再按下「設定」的按鈕。 在通用
Thumbnail
Kawasaki Ninja 400被譽為是入門級運動機車市場的王者,以其卓越的性能和獨特的外觀設計在市場上獲得了極高的評價。這款車在2018年正式發布,它的創新設計和卓越性能在運動機車愛好者中引起了巨大的迴響。 首先,Kawasaki Ninja 400的外觀設計非常吸引人。它採用了全新的造型設計
Thumbnail
前言 Adyen是荷蘭的一家支付企業,2006年創立,起初主要為大型企業提供支付服務(To-B),包括Uber, eBay, Netflix及Spotify等。顧客可以於線上、Apps、實體店,用他們慣用的支付方式完成交易。 價值主張 (WHO you are? Business Aim?) Mis
Thumbnail
前言 這次是以新框架重新寫一次中信國際電訊 (業務核心邏輯、收入模型、業務資源及投資論點都是重點部分),及做了一系列業務補充。中信國際電訊為澳門電訊業壟斷市場參與者,近年大力發展企業業務及海外業務。準確來說中信國際電訊不止是營運商,更是批發商,因為所有澳門電訊公司要做生意就需要用澳門電訊(子公司)的
Thumbnail
前言 VISA是本Blog第一支分析的美股,研究結構會以上一篇文章 (Source: 【周末輕鬆D】研究公司,究竟是要看那個地方?)進行。這屬於公司研究的第2步 (第1步是行業分析),下一步就會開始進行財務分析及估值。 開始之前,如果大家希望更易理解VISA的商業模型,建議先看支付行業分析 (【行行
Thumbnail
現實世界有2種東西是價錢又貴又浪費金錢,但又絕對不可以不買,便是女人包包及小朋友物品(你點慳都一定要買)。亦代表,好多好公司亦會係呢個行業出現。 如果各位讀者已為人父人母,就一定聽過VTech呢個牌子。VTech其實是一個學習玩具牌子。那VTech是屬於零售行業? 除左賣玩具還有其他業務? 間公司
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 🔗EXCEL儀表板 | 人力資訊分析儀表板 #2 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整
Thumbnail
🎗️本次主題成果展示:人力資訊分析 上集回顧 🔗EXCEL儀表板 | 人力資訊分析儀表板 #1 | 上手等級:入門🔗 ♐人力資訊儀表板分集 本次人力資訊儀錶板預計分成5集依循漸進逐步完成 資料整理與人力資訊取得 區域樞紐分析+環圈圖 (本集教學) 性別樞紐分析+圖像
Thumbnail
EXCEL設計新思維,即日起新增了一個新的房間【EXCEL儀表板】,什麼是EXCEL儀表板呢? Excel 儀表板是一種視覺化工具,用於展示和分析數據,幫助用戶快速理解和決策。以下是Excel儀表板的主要特點和功能簡介: 特點 視覺化展示: 使用圖表、圖形和表格來直觀展示數據。 常見的圖
Thumbnail
《持續買進》用淺顯易懂的方式搭配豐富的圖表帶領讀者可以很簡單的梳理一些基礎的投資理財觀念,也可以從中獲得一些個人財務價值觀的啟發,蠻適合做為簡單入門的投資理財書籍,本篇用簡單摘要的方式分享書中提出的觀念給大家。
Thumbnail
在MC的QuoteManager中,可以讓使用都新增自己的數據源,使用者可在QuoteManager的「工具」選單中,點選「數據源」,進行自己所要接收的數據源。 在數據源的設定視窗中,列出目前提供的數據源種類,往下捲動,找到「Universal DDE」這個類型後,再按下「設定」的按鈕。 在通用
Thumbnail
Kawasaki Ninja 400被譽為是入門級運動機車市場的王者,以其卓越的性能和獨特的外觀設計在市場上獲得了極高的評價。這款車在2018年正式發布,它的創新設計和卓越性能在運動機車愛好者中引起了巨大的迴響。 首先,Kawasaki Ninja 400的外觀設計非常吸引人。它採用了全新的造型設計
Thumbnail
前言 Adyen是荷蘭的一家支付企業,2006年創立,起初主要為大型企業提供支付服務(To-B),包括Uber, eBay, Netflix及Spotify等。顧客可以於線上、Apps、實體店,用他們慣用的支付方式完成交易。 價值主張 (WHO you are? Business Aim?) Mis
Thumbnail
前言 這次是以新框架重新寫一次中信國際電訊 (業務核心邏輯、收入模型、業務資源及投資論點都是重點部分),及做了一系列業務補充。中信國際電訊為澳門電訊業壟斷市場參與者,近年大力發展企業業務及海外業務。準確來說中信國際電訊不止是營運商,更是批發商,因為所有澳門電訊公司要做生意就需要用澳門電訊(子公司)的
Thumbnail
前言 VISA是本Blog第一支分析的美股,研究結構會以上一篇文章 (Source: 【周末輕鬆D】研究公司,究竟是要看那個地方?)進行。這屬於公司研究的第2步 (第1步是行業分析),下一步就會開始進行財務分析及估值。 開始之前,如果大家希望更易理解VISA的商業模型,建議先看支付行業分析 (【行行
Thumbnail
現實世界有2種東西是價錢又貴又浪費金錢,但又絕對不可以不買,便是女人包包及小朋友物品(你點慳都一定要買)。亦代表,好多好公司亦會係呢個行業出現。 如果各位讀者已為人父人母,就一定聽過VTech呢個牌子。VTech其實是一個學習玩具牌子。那VTech是屬於零售行業? 除左賣玩具還有其他業務? 間公司