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
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
108會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
瓶裝雪的沙龍的其他內容
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
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
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)結合的方式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News