proteced vs internal vs protected internal

Yan Cui

I help clients go faster for less using serverless technologies.

Most C# developers will know what “public”, “private”, “protected” and “internalaccess modifiers mean and would have had to use them in their code, but rarely do we come across the “protected internal” access modifier.

Now, protected means the type or member can be accessed by derived classes, NOT restricted to the same assembly, whereas internal means the type or member can be accessed by code ONLY in the same assembly. It’s easy (and common) to think of the access modifiers in a linear sense where private is the most restrictive, and protected, internal and ultimately public becomes less and less restrictive:

image

This is certainly the case within the SAME assembly, but when you have multiple assemblies this no longer holds true as types might be derived outside of the assembly it’s declared in:

image

And that is what protected internal gives you – accessibility from any derived classes anywhere, as well as any class from within the same assembly.


 

Whenever you’re ready, here are 4 ways I can help you:

  1. If you want a one-stop shop to help you quickly level up your serverless skills, you should check out my Production-Ready Serverless workshop. Over 20 AWS Heroes & Community Builders have passed through this workshop, plus 1000+ students from the likes of AWS, LEGO, Booking, HBO and Siemens.
  2. If you want to learn how to test serverless applications without all the pain and hassle, you should check out my latest course, Testing Serverless Architectures.
  3. If you’re a manager or founder and want to help your team move faster and build better software, then check out my consulting services.
  4. If you just want to hang out, talk serverless, or ask for help, then you should join my FREE Community.

 


1 thought on “proteced vs internal vs protected internal”

Leave a Comment

Your email address will not be published. Required fields are marked *