Protected Keyword C#

Nishant Kumar picture Nishant Kumar · Sep 2, 2010 · Viewed 20.7k times · Source

I want to know what is the meaning of protected in C#, why we use it, and the benefit of the keyword?

For instance

protected int currentColorIndex;

Please elaborate.

Answer

RPM1984 picture RPM1984 · Sep 2, 2010

Everyone's answer is similar (a definition and/or a excerpt/link to MSDN), so ill attempt to answer your original 3 questions:

The Meaning:

Any field marked with 'protected' means it is only visible to itself and any children (classes that inherit from it). You will notice in the ASP.NET Web Forms code behind model, event handlers (such as Page_Load) are marked 'protected'. This is because the ASPX Markup file actually inherits from the code-behind file (look at the @Page directive to prove this).

Why We Use It:

The common use of the protected accessibility modifier is to give children access to it's parents properties. You might have a base class for which many subclasses derive from. This base class may have a common property. This is a good case for a protected property - to facilitate the re-use and central maintenance of common logic.

The Benefit:

Kind of similar question to "why we use it?" But essentially it gives coarse-grained control over properties. You can't just think of "when you use protected". It's more a case of choosing when to use which accessibility modifier (private, public, internal, protected). So the benefit is really the same benefit of any accessibility modifier - provide a robust and consistent object model, maximising code re-use and minimizing security risks associated with incorrectly exposed code.

Hope that helps.