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

閱讀時間約 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
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
## 存取修飾詞詳解 在 C# 中有四種主要的存取修飾詞,但作為初學者,你最常用到的是以下兩種: 1. **Public**: 任何腳本都可以無限制地訪問 2. **Private**: 只能在它們被創建的類別(稱為包含類別)中訪問。任何沒有存取修飾詞的變數預設都是 Private
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
Thumbnail
本章節的目的是讓讀者瞭解C#的物件導向特性,包括類別、繼承、多型、封裝等基本概念,以及介面、抽象類別、靜態類別等進階主題。此外,本章節也將介紹如何使用列舉、委派、Lambda表達式、泛型及反射,這些都是C#中常見的強大功能。
※ Object(物件) & Constructor Function(建構式函式) Object(物件)是什麼? 物件是一種「可以將資料、程式碼包含在其中」的資料結構。 Object(物件)的兩種創造方式: 匿名物件:直接使用"{}"。沒有特別的名字,直接從Object中繼承過來的一個物件
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
先前我們談論到靜態方法就像是定義工具箱一樣,那麼抽象方法就像是共用表格的概念,例如註冊帳號時會填寫的一些基本資料,就有包含制式的表格,裡面有需填寫的欄位,例如姓名,性別等。
Thumbnail
在使用類別創建實例時,輸入的屬性的都要定義好資料型態,例如dog_1 = Dog("Buddy", 3),有沒有輸入一段字串讓他自己判斷的方法阿? 有的就是使用classmethod: classmethod 是一種裝飾器,它用於定義類別方法。類別方法與實例方法不同,它們被綁定到類別而不是實例。
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
## 存取修飾詞詳解 在 C# 中有四種主要的存取修飾詞,但作為初學者,你最常用到的是以下兩種: 1. **Public**: 任何腳本都可以無限制地訪問 2. **Private**: 只能在它們被創建的類別(稱為包含類別)中訪問。任何沒有存取修飾詞的變數預設都是 Private
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
Thumbnail
本章節的目的是讓讀者瞭解C#的物件導向特性,包括類別、繼承、多型、封裝等基本概念,以及介面、抽象類別、靜態類別等進階主題。此外,本章節也將介紹如何使用列舉、委派、Lambda表達式、泛型及反射,這些都是C#中常見的強大功能。
※ Object(物件) & Constructor Function(建構式函式) Object(物件)是什麼? 物件是一種「可以將資料、程式碼包含在其中」的資料結構。 Object(物件)的兩種創造方式: 匿名物件:直接使用"{}"。沒有特別的名字,直接從Object中繼承過來的一個物件
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
先前我們談論到靜態方法就像是定義工具箱一樣,那麼抽象方法就像是共用表格的概念,例如註冊帳號時會填寫的一些基本資料,就有包含制式的表格,裡面有需填寫的欄位,例如姓名,性別等。
Thumbnail
在使用類別創建實例時,輸入的屬性的都要定義好資料型態,例如dog_1 = Dog("Buddy", 3),有沒有輸入一段字串讓他自己判斷的方法阿? 有的就是使用classmethod: classmethod 是一種裝飾器,它用於定義類別方法。類別方法與實例方法不同,它們被綁定到類別而不是實例。
Thumbnail
宣告變數 變數是程式中用來儲存和表示數據的標識符號​,並將變數存放在某個記憶體位子 可以用ID的方法查找變數存在哪個記憶體,此方法有利於以後查找問題用。 在大多數程式語言中,變數需要事先聲明(宣告)並賦值。 而Python是一種動態類型語言,不需要顯式宣告變數類型,而是在賦值時自動進行推斷。