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

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

前言

  創作者有一個需要學習的網路資源,那就是「社群聯盟」,使用自己的IP進行各種不同的創作,FB、IG、部落格、YT等社群網站,而這些網站彼此會連結互通,擴大自己的客群之外,也讓同一份作品擁有最大收益。  

  最近在思考,要不要新創見一個類型文章「Unity C# Test」,主要是添加的錄影和完整程式碼包,用於測試程式和紀錄片的程式教學,目前在Youtube還沒看到類似純程式短片。

  純程式短片,是指沒有解說,然後針對測試需要使用的部分,也就是一個影片只有幾十秒,需要瞭解的部分按下暫停即可,本來打算唯讀概念要用Test,然後發現程式會相當短,可能要搭配其他的內容。

程式維護概念

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

命名法則

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

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

  呼叫其他程式(Script)時,Visual Studio會協助通知有哪些可以調用,如果在呼叫的程式中有過多的公用欄位(Field),會導致選取時有過多的資訊呈現在下拉清單,不利閱讀。

  我相信多數閱讀文章的讀者已經懂公有跟私有的概念,所以簡單說保護層級主要在形容公用跟私有,限制這個程式(Script)的使用範圍,公有讓資料可以被其他程式讀取,私有則否。

封裝(Encapsulation)

  撰寫程式時,程式員肯定會知道自己命名資料的用途,然而幾天後、幾周後是否依然能知道呢?換一位程式員接管呢?未來在修改時,會不會有記錯變數名稱導致修改錯誤參數?  

  為了避免這樣的狀況,我們封裝程式,封裝是物件導向三大特性之一,未來有機會做單篇介紹,封裝指讓一大串程式簡化成一段函式(Method();),這段函式中的所有資料都不可讀取,未來只要呼叫就可以使用。簡單來說,封裝從字面上就可以理解,把資料封閉裝好,方便未來使用。

  封裝只是解決問題的方法代稱,詳細怎麼做,是程式設計師的範疇,如何把資料進行完善的封裝,是程式設計師要學習的知識之一。

唯讀(readonly)

  其中一種封裝方式,就是唯獨,關於唯獨相關的內容在之前的一篇文章中有提過,詳細可以回去參考。

Unity C# | 讀(get)和寫(set)概述 & 基本運用

  唯讀從英文翻譯,又稱作「只讀」、「只能讀」,讓程式資料變成只可以讀取的做法,唯讀屬性的資料無法做修改,哪怕是同一個程式依然如此。

從宣告中設定唯讀

  宣告變數時,在要唯讀的變數前面添加唯讀即可

//可行
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原則等等,開啟了一個新的程式大門,之後如果瞭解多了,考慮在撰寫一篇關於程式導向的文章。


raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
109會員
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
C# 9.0 給 Unity 程式設計上帶來的便利
Thumbnail
C# 9.0 給 Unity 程式設計上帶來的便利
Thumbnail
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
Thumbnail
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
Thumbnail
,先來分享一下封裝是怎麼一回事。 一、封裝(Encapsulation) 封裝就是把一些功能的處理程序或是資料包起來,也對於程式碼做權限的設定做一層保護的機制,這是為了防止程式碼被竄改,所以有了封裝可以保障我們資料的隱密性,甚至封裝也是一種將一些處理程序隱藏起來,讓使用者使用時可以更加單純。 1.什
Thumbnail
,先來分享一下封裝是怎麼一回事。 一、封裝(Encapsulation) 封裝就是把一些功能的處理程序或是資料包起來,也對於程式碼做權限的設定做一層保護的機制,這是為了防止程式碼被竄改,所以有了封裝可以保障我們資料的隱密性,甚至封裝也是一種將一些處理程序隱藏起來,讓使用者使用時可以更加單純。 1.什
Thumbnail
一、存取修飾詞public / private / protected / internal 二、參數修飾詞ref / in / out >>>>>由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容
Thumbnail
一、存取修飾詞public / private / protected / internal 二、參數修飾詞ref / in / out >>>>>由於我們在寫程式時,會去宣告一些變數、常數相關識別詞,並且在class(類別)中會寫一些事情或動作讓程式去運行,然而這個概念就是去定義對於我們所寫的內容
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
本篇文章將會介紹C#的基礎構成和字串的使用,若想要更詳細的教學,可以參考前一篇文章,前往Microsoft官方教學學習。
Thumbnail
本篇文章將會介紹C#的基礎構成和字串的使用,若想要更詳細的教學,可以參考前一篇文章,前往Microsoft官方教學學習。
Thumbnail
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
Thumbnail
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
Thumbnail
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News