Unity C# | 類型(Type)&變數(Variable)

更新 發佈閱讀 5 分鐘

前言

  最近在撰寫自己的程式時,深刻地感受到自己的C#知識不足,在程式的撰寫跟運用上雖然沒什麼問題,但程式的詳細運作原理還是造成了一些困擾,譬如我打算自己撰寫製作屬於我自己的工具包,卻跳出靜態成員和動態成員的不同導致的錯誤。

類型(Type)

  C#在儲存資料時,會將記憶體分別存在兩個類別,分別是「Stack」跟「Heap」,雖然兩個在英文中都是一堆兩堆的「堆」的意思,不過在英文中不相同。

  程式語言源於英語,無論是變數還是命名規則都很常使用英文來命名,中文在學習程式上會不太順利,會遇到像上面這樣,同樣是「堆」,英文使用兩個名詞來描述,也會遇到同樣是「normalize」,中文會有「歸一化」和「標準化」兩個不同的解讀。

Stack:儲存實值類型 (Value Type)
Heap:儲存參考類型 (Reference Type)

實值類型 (Value Type)

  所謂的實值型別,簡單來說就是這個值實際存在,當我們要儲存一個新的實質類型的資料,我們必須定義這個值是什麼。

int、float、enum、bool、struct......

上面是常見的實質類型資料,以「int」為範例

private int a = 10;
//創建一個整數a,而這個a的值為10。

參考類型 (Reference Type):

  而參考類型,指的是不需要實際值存在的類型,當我們宣告一個新的類型後並不需要指定一個值給它。

class、object、enum、string.......

上面是常見的參考類型,以「class」為範例

public class myclass{}

Unity中的使用方式

  當初撰寫程式的時候,其實並沒有注意到這些,因為Unity會幫忙定義好Class,並且有給Unity內建的函式,直接在裡面撰寫我需要的程式,對於初學者來說這就足夠了。

  在之前撰寫的文章也有提到,如果希望撰寫的程式「好」,要避免高耦合讓不同程式彼此互相影響,而內聚也要避免重複代碼,因此如果只懂得宣告跟使用變數,很容易出問題。

  參考類型在Unity中扮演一個個程式,像是Unity在建立新Script時:

public class myclass : monoBehavior
{
  void Start
  {

  }  
  void Update
  {
    
  }
}

會幫你建立好的這些程式,都是屬於Unity幫你定義好的參考類型,而新手在這些區域撰寫和使用,通常只會接觸到實值類型。

「Unity C# | 命名法則 & 低耦合、高內聚」

變數(Variable)

  接下來簡單講一下實值類型中的命名方式

public class myclass : monoBehavior
{
  private int a;
  private int _a;
  private int a1;
  //private int int;
  //private int 1a;

  void Start
  {
  
  }
  void Update
  {
  
  }
}

  上面以「int」為範例,三種命名方式,以及註解兩種錯誤的命名方式

  • 開 頭:英文、底線。
  • 非開頭:英文、底線、數字。
  • 不可為:關鍵字。


  變數(Variable)的命名在寫程式的使用上相當重要,每位程式設計師的風格都不太相同,不過基本上只要保持「易讀性」,能給不同設計師維護和使用,那就沒有什麼大問題。

結尾

  寫這篇文章讓我尋找了相當多的資訊,在書寫技術性文章時,一方面擔心自己寫的東西是否正確,會看很多不同的文章和影片來佐證,就像寫論文一樣,不過不需要一一列舉參考的資料(笑)。

  寫這一系列的文章,不太確定原因,不過寫起來相當有成就感,上次有看到IT鐵人比賽,相當的激勵我寫作,雖然不打算參賽,不過試試1-2天一篇文章是一個不錯的自我挑戰。


raw-image


留言
avatar-img
瓶裝雪的沙龍
117會員
247內容數
你好,我是瓶裝雪!我是一名遊戲設計師!
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
C# 9.0 給 Unity 程式設計上帶來的便利
Thumbnail
C# 9.0 給 Unity 程式設計上帶來的便利
Thumbnail
一、存取修飾詞public / private / protected / internal 二、參數修飾詞ref / in / out >>>>>由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容
Thumbnail
一、存取修飾詞public / private / protected / internal 二、參數修飾詞ref / in / out >>>>>由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容
Thumbnail
這次分享資料形態中的資料型別部分,在VC#流程架構介紹中有提到它如同中文有不同的詞性,那C#程式中有哪些型別呢?我們就來看一看。 一、常用的資料型別 當然還有自訂義的型別這就要看怎麼定義了,之後看內容狀況再來提,那麼資料型態是為了要做宣告用途,告訴電腦你的資料是屬於什麼類別的,這樣在做後續資料時程式
Thumbnail
這次分享資料形態中的資料型別部分,在VC#流程架構介紹中有提到它如同中文有不同的詞性,那C#程式中有哪些型別呢?我們就來看一看。 一、常用的資料型別 當然還有自訂義的型別這就要看怎麼定義了,之後看內容狀況再來提,那麼資料型態是為了要做宣告用途,告訴電腦你的資料是屬於什麼類別的,這樣在做後續資料時程式
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
介紹 原始碼(source code)→編譯器→中繼語言(MSIL)→CLR→電腦看得懂的語言(Native code) 所以我們可以知道,CLR( Common Language Runtime ):是 .NET Framework 的虛擬機器元件 (virtual machine compone
Thumbnail
介紹 原始碼(source code)→編譯器→中繼語言(MSIL)→CLR→電腦看得懂的語言(Native code) 所以我們可以知道,CLR( Common Language Runtime ):是 .NET Framework 的虛擬機器元件 (virtual machine compone
Thumbnail
本篇文章將會介紹C#的基礎構成和字串的使用,若想要更詳細的教學,可以參考前一篇文章,前往Microsoft官方教學學習。
Thumbnail
本篇文章將會介紹C#的基礎構成和字串的使用,若想要更詳細的教學,可以參考前一篇文章,前往Microsoft官方教學學習。
Thumbnail
本文章將會介紹結構(Struct)的定義、簡單介紹其應用,並且補充與序列化(SerializeFile)結合的方式。
Thumbnail
本文章將會介紹結構(Struct)的定義、簡單介紹其應用,並且補充與序列化(SerializeFile)結合的方式。
Thumbnail
本文以實際的程式碼來說明Value Type和Reference Type的差異,並介紹實用的除錯工具。
Thumbnail
本文以實際的程式碼來說明Value Type和Reference Type的差異,並介紹實用的除錯工具。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
使用者自訂的資料型別
Thumbnail
使用者自訂的資料型別
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News