2022-02-19|閱讀時間 ‧ 約 5 分鐘

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

前言

  創作者有一個需要學習的網路資源,那就是「社群聯盟」,使用自己的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原則等等,開啟了一個新的程式大門,之後如果瞭解多了,考慮在撰寫一篇關於程式導向的文章。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.