屬性—–C#

來源:互聯網
上載者:User

屬性(C#)(摘自msdn)2008-11-19 09:49(摘自msdn)
屬性是這樣的成員:它們提供靈活的機制來讀取、編寫或計算私人欄位的值。可以像使用公用資料成員一樣使用屬性,但實際上它們是稱為“訪問器”的特殊方法。這使得資料在可被輕鬆訪問的同時,仍能提供方法的安全性和靈活性。

在本樣本中,類 TimePeriod 儲存了一個時間段。類內部以秒為單位儲存時間,但提供一個稱為 Hours 的屬性,它允許用戶端指定以小時為單位的時間。Hours 屬性的訪問器執行小時和秒之間的轉換。

樣本C#class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}

class Program
{
    static void Main()
    {
        TimePeriod t = new TimePeriod();

        // Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        // Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}
 輸出Time in hours: 24
 屬性概述屬性使類能夠以一種公開的方法擷取和設定值,同時隱藏實現或驗證代碼。

get 屬性訪問器用於返回屬性值,而 set 訪問器用於分配新值。這些訪問器可以有不同的存取層級。有關更多資訊,請參見訪問器可訪問性。

value 關鍵字用於定義由 set 索引器分配的值。

不實現 set 方法的屬性是唯讀。

使用屬性

屬性結合了欄位和方法的多個方面。對於對象的使用者,屬性顯示為欄位,訪問該屬性需要完全相同的文法。對於類的實現者,屬性是一個或兩個代碼塊,表示一個 get 訪問器和/或一個 set 訪問器。當讀取屬性時,執行 get 訪問器的代碼塊;當向屬性分配一個新值時,執行 set 訪問器的代碼塊。不具有 set 訪問器的屬性被視為唯讀屬性。不具有 get 訪問器的屬性被視為唯寫屬性。同時具有這兩個訪問器的屬性是讀寫屬性。

與欄位不同,屬性不作為變數來分類。因此,不能將屬性作為 ref(C# 參考)參數或 out(C# 參考)參數傳遞。

屬性具有多種用法:它們可在允許更改前驗證資料;它們可透明地公開某個類上的資料,該類的資料實際上是從其他源(例如資料庫)檢索到的;當資料被更改時,它們可採取行動,例如引發事件或更改其他欄位的值。

屬性在類別模組內是通過以下方式聲明的:指定欄位的存取層級,後面是屬性的類型,接下來是屬性的名稱,然後是聲明 get 訪問器和/或 set 訪問器的代碼模組。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.