1. 程式人生 > >unity3D指令碼C#的get,set的用法

unity3D指令碼C#的get,set的用法

C#是面向物件程式設計,在面向物件程式設計(OOP)中,是不允許外界直接對類的成員變數直接訪問的,既然不能訪問,那定義這些成員變數還有什麼意義呢?所以C#中就要用set和get方法來訪問私有成員變數,它們相當於外界訪問物件的一個通道,一個“介面”

    我們通過一個實際的例子講解get與set的意思,下面的程式碼中,建立了一個叫銀行的類。一個是私有變數,用小寫money表示,公共變數用大寫MONEY表示,money通過MONEY這個變數建立與外界訪問的介面。

class Bank
  {
        private string menoy;
        public string MONEY 
        {
            //GET訪問器,可以理解成另類的方法,返回已經被賦了值的私有變數a
            get { return menoy; }
            //SET訪問器,將我們打入的值賦給私有變數money
            set { menoy= MONEY; }
        }
       
  }

接下來我們建立一個主函式,共有3個操作,1、開辦農業銀行2、在農業銀行裡中存錢200塊3、查詢餘額。

class Program
    {
        static void Main(string[] args)
         {
            //開辦一個農業銀行
            Bank ABC = new Bank();

            //存錢200,這時我們訪問的是SET訪問器
            ABC.MONEY = 200;

            //餘額查詢,這時我們訪問的是GET訪問器
            int a = ABC.MONEY;
         }
    }

 並不是說get ,set的含義難理解,而是為什麼要用?為何不直接用個public的欄位變數來代替呢?

因為用了GET和SET能讓賦值和取值增加限制,比如在農業銀行裡存錢和查詢餘額的時候,要先輸入密碼,才能訪問私人賬戶,作用與之類似,這裡不詳細舉例。