Unity C# | 程式維護概念 & 唯讀(readonly) 使用

更新於 發佈於 閱讀時間約 4 分鐘

前言

  創作者有一個需要學習的網路資源,那就是「社群聯盟」,使用自己的IP進行各種不同的創作,FB、IG、部落格、YT等社群網站,而這些網站彼此會連結互通,擴大自己的客群之外,也讓同一份作品擁有最大收益。  
  最近在思考,要不要新創見一個類型文章「Unity C# Test」,主要是添加的錄影和完整程式碼包,用於測試程式和紀錄片的程式教學,目前在Youtube還沒看到類似純程式短片。
  純程式短片,是指沒有解說,然後針對測試需要使用的部分,也就是一個影片只有幾十秒,需要瞭解的部分按下暫停即可,本來打算唯讀概念要用Test,然後發現程式會相當短,可能要搭配其他的內容。

程式維護概念

  撰寫程式時,除了解決問題之外,也需要關注之後的維護跟修正,如果為了解決問題而忽略閱讀上的方便、撰寫上的雜亂,會導致未來很艱苦。

命名法則

  這個之前有介紹過,一個好的命名方式讓不同程式員(包含未來的自己)可以輕易地看出程式的作用,除了我撰寫的概述之外,網路上亦有許多不同的命名方式,想要讓程式易讀好改,要好好使用命名規則。

保護層級:公有(public)和私有(private)

  呼叫其他程式(Script)時,Visual Studio會協助通知有哪些可以調用,如果在呼叫的程式中有過多的公用欄位(Field),會導致選取時有過多的資訊呈現在下拉清單,不利閱讀。
  我相信多數閱讀文章的讀者已經懂公有跟私有的概念,所以簡單說保護層級主要在形容公用跟私有,限制這個程式(Script)的使用範圍,公有讓資料可以被其他程式讀取,私有則否。

封裝(Encapsulation)

  撰寫程式時,程式員肯定會知道自己命名資料的用途,然而幾天後、幾周後是否依然能知道呢?換一位程式員接管呢?未來在修改時,會不會有記錯變數名稱導致修改錯誤參數?  
  為了避免這樣的狀況,我們封裝程式,封裝是物件導向三大特性之一,未來有機會做單篇介紹,封裝指讓一大串程式簡化成一段函式(Method();),這段函式中的所有資料都不可讀取,未來只要呼叫就可以使用。簡單來說,封裝從字面上就可以理解,把資料封閉裝好,方便未來使用。
  封裝只是解決問題的方法代稱,詳細怎麼做,是程式設計師的範疇,如何把資料進行完善的封裝,是程式設計師要學習的知識之一。

唯讀(readonly)

  其中一種封裝方式,就是唯獨,關於唯獨相關的內容在之前的一篇文章中有提過,詳細可以回去參考。
  唯讀從英文翻譯,又稱作「只讀」、「只能讀」,讓程式資料變成只可以讀取的做法,唯讀屬性的資料無法做修改,哪怕是同一個程式依然如此。

從宣告中設定唯讀

  宣告變數時,在要唯讀的變數前面添加唯讀即可
//可行
private readonly int A = 10;
//不可行
private int readonly A = 10;
這一行宣告,指的是直接建立一個唯讀資料A,這個資料就是10。

從屬性中設定唯讀

  宣告變數時,把變數轉換成屬性,並只使用get存取子(accessor)即可
//這是一個變數
private int a;
//這是一個屬性
private int a
{
  
}
//A是一個屬性,且唯讀,a則是普通變數
private int a;
public int A
{
  get
  {
    return a; 
  }
}
  唯讀屬性的使用,可以讓a只單純在程式(Script)中運作,外部只能讀取屬性A,而這個A是唯讀屬性,無法做任何修改。

結語

  唯讀屬性有很多種用法,比較基礎的使用方法為,如果一個變數確定不能更改,可以把它變成唯讀屬性,這樣之後的任何更新都不會影響此變數。
  撰寫這篇文章時,額外又多了許多知識近來,向是物件導向三大特性,Solid原則等等,開啟了一個新的程式大門,之後如果瞭解多了,考慮在撰寫一篇關於程式導向的文章。
為什麼會看到廣告
avatar-img
107會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言
avatar-img
留言分享你的想法!
瓶裝雪的沙龍 的其他內容
本文章將介紹回傳及無類型回傳在變數與函數中的用法,以及他們比較常使用的方式。
本文章將介紹Unity產品生命週期的一部分,並提供使用範例程式碼。
在Unity中,Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。
這篇文章主要介紹父子關係,以及相關的程式控制代碼列舉。
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
這篇文章會帶你了解Unity中Inspector最基本項目中的Tag&Layer,以及Tag相關應用。
本文章將介紹回傳及無類型回傳在變數與函數中的用法,以及他們比較常使用的方式。
本文章將介紹Unity產品生命週期的一部分,並提供使用範例程式碼。
在Unity中,Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。
這篇文章主要介紹父子關係,以及相關的程式控制代碼列舉。
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
這篇文章會帶你了解Unity中Inspector最基本項目中的Tag&Layer,以及Tag相關應用。
你可能也想看
Google News 追蹤
Thumbnail
靈感用盡、鍵盤不再響,盯著喜歡、分享、留言的數字,心跳跟著小鈴鐺七上八下⋯⋯vocus 2025 年 4 月限定新商品,要為創作者打氣! 🚨「創作者打氣包」 最懂創作者的vocus,為創作者打造 ✨ 打氣包,包什麼?!四件道具挺創作者 一、【打氣復活卷】 專屬你的打氣小語,成功登記免費
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
筆記:角色移動、相機控制與碰撞 1. 角色移動的基礎 移動方式選擇: Transform 組件:簡單易用,直接改變物件的位置與旋轉。 Rigidbody 物理效果:通過施加力實現真實移動,但需配置物理屬性。 現成組件或 Prefab:如 Unity 的 Character Control
第五章 筆記:使用類別、結構和物件導向程式設計(OOP) 目標與重要性 類別與物件導向程式設計(OOP):學習創建自定義類別,了解變數、建構子、方法,以及類別與結構之間的差異。 OOP 原則: 封裝(Encapsulation):限制對物件變數和方法的訪問權限。 繼承(Inherita
## 存取修飾詞詳解 在 C# 中有四種主要的存取修飾詞,但作為初學者,你最常用到的是以下兩種: 1. **Public**: 任何腳本都可以無限制地訪問 2. **Private**: 只能在它們被創建的類別(稱為包含類別)中訪問。任何沒有存取修飾詞的變數預設都是 Private
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
靈感用盡、鍵盤不再響,盯著喜歡、分享、留言的數字,心跳跟著小鈴鐺七上八下⋯⋯vocus 2025 年 4 月限定新商品,要為創作者打氣! 🚨「創作者打氣包」 最懂創作者的vocus,為創作者打造 ✨ 打氣包,包什麼?!四件道具挺創作者 一、【打氣復活卷】 專屬你的打氣小語,成功登記免費
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
筆記:角色移動、相機控制與碰撞 1. 角色移動的基礎 移動方式選擇: Transform 組件:簡單易用,直接改變物件的位置與旋轉。 Rigidbody 物理效果:通過施加力實現真實移動,但需配置物理屬性。 現成組件或 Prefab:如 Unity 的 Character Control
第五章 筆記:使用類別、結構和物件導向程式設計(OOP) 目標與重要性 類別與物件導向程式設計(OOP):學習創建自定義類別,了解變數、建構子、方法,以及類別與結構之間的差異。 OOP 原則: 封裝(Encapsulation):限制對物件變數和方法的訪問權限。 繼承(Inherita
## 存取修飾詞詳解 在 C# 中有四種主要的存取修飾詞,但作為初學者,你最常用到的是以下兩種: 1. **Public**: 任何腳本都可以無限制地訪問 2. **Private**: 只能在它們被創建的類別(稱為包含類別)中訪問。任何沒有存取修飾詞的變數預設都是 Private
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料