欄位與屬性的區別

來源:互聯網
上載者:User
可以理解為 欄位是類內部用的,屬性是類外部用的

下面是個C#寫的例子,這個例子作用是可以通過屬性擷取時間值,但是只能通過SetTime()方法設定時間值,我想這也是為什麼要分欄位和屬性的一大原因吧。

  首先聲明的是private類型的變數(欄位)hours,通常欄位寫法都是加個"_"符號,然後聲明唯讀屬性hours
  在 類內部可以通過變數(欄位)對其進行讀寫,在類外部不能訪問變數(欄位),只能訪問屬性。而且在此例內如果想修改時間值,只能通過調用SetTime() 方法往裡傳值(因為這裡的各屬性只有get沒有set,只在類內部的SetTime()方法中對其對應欄位進行賦值操作),而不能通過類執行個體對象 timeTest1的 timeTest1.hours=12 這樣進行賦值。

public class TimeTest
{
    private int _hours;
    public int hours
    {
        get { return _hours; }
    }

    private int _minutes;
    public int minutes
    {
        get { return _minutes; }
    }

    //可以不加"private",C#中類成員預設都是private類型的
    int _seconds;
    public int seconds
    {
        get { return _seconds; }
    }

    public void SetTime(int hours, int minutes, int seconds)
    {
        this._hours = hours;
        this._minutes = minutes;
        this._seconds = seconds;
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.