簡體   English   中英

您需要一個帶有構造函數的只讀屬性,讓您為該屬性設置值嗎?

[英]What do you need a read-only property with a constructor that let's you set the values in that property for?

具有構造器的只讀屬性如何使您可以設置值:

public class Customer
{
    private int m_id = -1;

    public Customer(int id)
    {
         m_id = id;
    }

    public int ID
    {
        get
        {
            return m_id;
        }
    }
}

與正常的get,set屬性不同如下所示?

public class Customer
{
    private int m_id = -1;

    public int ID
    {
        get
        {
            return m_id;
        }
        set
        {
            m_id = value;
        }
    }

read-only property不允許程序中的其他類設置property值。 傳統property確實如此。

在這種情況下, class將迫使程序員在構造函數中提供一個int ID 擁有public property幾乎可以抵消這一要求,因為程序員可以隨時更改ID的值。

可以使用readonly關鍵字聲明在對象構造函數中設置的成員變量。 這允許變量充當常量(例如,嘗試對其進行更改將生成編譯時錯誤),但仍允許您為每個對象實例將其設置為不同的值。 這是一點語法上的糖,可以幫助防止您的編碼人員意外修改不希望修改的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM