1. 程式人生 > >C# get & set 存取子(accessors)

C# get & set 存取子(accessors)

C# get & set 存取子
class的屬性(Property)可以讓讀、寫、運算機制變得更有彈性,
在這裡要介紹屬性的一個特殊的methods,稱為: 存取子(accessors),也可稱為訪問器
存取子包含 get存取子、set存取子

get 可以形容成 "提供",要返回結果
set 則可形容成 "設定",多數在處理計算及邏輯處理

那存取子有甚麼功用呢?
例如:在一般情況下,將變數的狀態屬性設定為string,就只能用來存取字串,int就只能用來處理整數
在class中,這些狀態屬性就可以透過存取子做額外加入邏輯判斷等描述式

get 範例
可以透過 get 存取子,將字串進行判斷、處理.... 再返回結果

//建立 A 類別
public class A
{
    //包含兩個string 
    public string name;
    public string st
    {
        //使用get存取子
        get {
            if (name != "")
            {
                return name;
            }else
            {
                return "default";
            }
        }
                
    }
} static void Main(string[] args) { //例項化A類別 A x = new A(); //設定A.name x.name = "Brown"; //取得 st Console.WriteLine("帳號:"+ x.st); }

set 範例
set含有特殊的keyword: value
當有值傳入時,都會存入value中

//建立 A 類別
public class A
{
    //包含兩個string
    public string v;
    public string st
    {
        //使用set存取子
set { //不多解釋,傳入值都會存在 value Console.WriteLine("帳號:" + value); } } } static void Main(string[] args) { //例項化A類別 A x = new A(); //A.st 傳入值 x.st = "Adam"; }

get and set 範例
可以試著執行,看看結果會是如何

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        //建立 A 類別
        public class A
        {
            public string v;
            public string name;
            //A class被例項化時,會立即執行建構子內容,並且可以傳入引數
            public string Show
            {
                get { return name; }
                set {
                    name = v;
                    Console.WriteLine("I am "+value);
                }
            }
        }


        static void Main(string[] args)
        {
            //例項化A類別
            A x = new A();

            x.v = "Brown";
            x.Show = "Joe";
            Console.WriteLine(x.Show);
        }
    }
}


如果你喜歡我們的文章內容,請在這裡按個讚