簡體   English   中英

了解獲取和設置訪問者

[英]Understanding Get and Set Accessors

我是新手,我正在努力學習C#的基礎知識。 這可能聽起來很微不足道,可能是愚蠢的,但這是一個疑問。 在瀏覽應用程序的一個源代碼時,我在一個類中看到了一段代碼

private string fname;
public string FirstName
{
    get
    {
       return fname
    }
    set
    {
       fname = value;
    }
}

任何人都可以告訴我這是什么意思。 我知道當我們聲明一個類時,我們使用別名FirstName訪問fname 如果它出於某種安全目的那么呢?

此代碼也相當於:

public string FirstName { get; set; }

這樣做是為了定義一個property 在C#屬性中為私有fields提供封裝。

您可以在您的財產上編寫自定義邏輯。 Fe,一些驗證:

public string FirstName
{
    get
    {
       return fname;
    }
    set
    {
       if (value.Count(s => Char.IsDigit(s)) > 0)
       {
           throw new Exception("Only letters allowed");
       }
       fname = value;
    }
}

fname是一個字段,具有私有可見性,但FirstName是一個公共屬性,因此它將在類外部可見,並且可以在get和set方法中包含邏輯

它叫做Properties( MSDN文章 )。 使用它們的原因是封裝訪問某些類字段,以便將來可以根據需要輕松更改類行為。

這也等同於所謂的自動屬性,因為此時的屬性不會添加任何邏輯:

public string FirstName { get; set; }

get和set方法稱為訪問器(getters)和mutators(setter),這些方法用於訪問和改變對象的屬性,而不允許從類外部進行訪問。 請參見變量fname的訪問修飾符是private,這意味着它只能由類中的任何方法訪問。

並注意,get和set方法通常應該被賦予public訪問修飾符,該修飾符允許從任何外部類訪問該方法。

暫無
暫無

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

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