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
105會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
Unity在這週公布了2022年Q1的財報,財報發布後股價下挫30%,下跌至30美元,已經遠遠跌破兩年前的上市價。Unity雪崩式的下跌是因為Q1的營運不理想、未來的營運預期不理想、還是單純是隨著近期成長股估值修正而下跌呢?這篇文會分析Unity 2022Q1財報及預測Unity未來的營運狀況。