-1

C# のプロパティ内で get/set のアクセス指定子を使用できますか?例と使用法、および利点と欠点を説明してください。面接の質問でした。

4

5 に答える 5

0

プロパティにgetter と setter の両方get(アクセサーとsetアクセサー) がある場合、追加のアクセス修飾子はこれらのアクセサーの1 つだけで許可され、問題のアクセサーのアクセシビリティは、ほとんどのアクセシビリティよりも制限されます。プロパティ全体。

次に例を示します。

class ContainingType
{
  public int MyProp
  {
    get
    {
      // code here, must return something
    }

    private set
    {
      // code here, may use special parameter 'value'
    }
  }
}

この例では、getter は (まだ)publicで、プロパティ全体と同様ですが、setter はより制限されたアクセスを持っています (here ) private

プロパティは、一方のメソッドのアクセス レベルがもう一方のメソッドよりも制限されているメソッドのペアと考えてください。

于 2013-07-14T17:40:14.713 に答える
0

はい、get、set のアクセス指定子を使用できますが、いくつかの規則があります。

  • アクセサーのアクセシビリティ レベルは、プロパティのアクセシビリティ レベルよりも厳しくする必要があります

  • プロパティまたはインデクサーにset アクセサーと get アクセサーの両方がある場合にのみ、アクセサー修飾子を使用できます。この場合、修飾子は2 つのアクセサーの1 つだけで許可されます。

于 2013-07-14T17:58:39.070 に答える