C#

Introduction to Access Modifiers in C#

Hello friends, I hope you all are having fun. In today's tutorial, we will have a look at Introduction to Access Modifiers in C#. It's our 22nd tutorial in C# series and now it's time to have a look at access modifiers, which we have to use a lot in C#. I hope that you have already studied previous lectures i.e. C# Methods, C# Structs, C# Classes etc. as these access modifiers are used with them. So, let's get started with Introduction to Access Modifiers in C#:

Introduction to Access Modifiers in C#

  • Access Modifiers in C# are used to apply restrictions on the accessibility of C# Objects within or outside the project, and are defined in the declaration.
  • There are 5 Access Modifiers available in C#, whcih are:
    • Private
    • Public
    • Protected
    • Internal
    • Protected Internal
  • We will have a look at all of them, in detail but before going any further, we need to understand the difference between Types & Type Members.
  • All those C# objects, which can contain members in them as called Types i.e. C# Classes, Structs, Interface, Enums etc.
  • While the members of these types are called Type Members i.e. C# Fields, C# Properties and C# Methods.
  • All the C# Types can only be either Public or Internal i.e. we can't make a class private. ( We will discuss it in detail shortly )

1. Private - Access Modifier in C#

  • Private Access Modifier restricts the C# Type Members to be used in the containing class only. ( Containing Class means, the class in which they are created )
  • We can't use Private Members in external classes, as shown in the figure on right side.
  • I have created a Private variable in a new class and now when I am trying to access this variable in Main function, I am unable to do that.
  • In the IntelliSense, there's no property/option to use this private variable.
  • Although, we can use this variable Number1 in HelloWorld class quite easily.

2. Public - Access Modifier in C#

  • Public Access Modifier removes all restrictions from C# Objects and these objects become available in any assembly or project.
  • In order to use Public Objects, we need to follow the proper way i.e. we need to instantiate in order to get the Public Property.
  • In the figure, you can see I have created a public variable Number1 in a new class and then I have assigned a value to it in my Main Method.

3. Protected - Access Modifier in C#

  • Protected Access Modifier restricts the C# Type Members to use only in containing classes or inherited classes.
  • We can't use Protected Members in any independent Class or Struct, it has to be inherited from the Containing Class.
  • Here's an example of Protected Access Modifier in action, and you can see that I can assign value to Protected variable Number1 in the inherited class HelloWorld2.
  • But the independent class Program can't access this Number1 variable.

4. Internal - Access Modifier in C#

  • Internal Access Modifier restricts the C# Objects to be used in the current assembly only.
  • In complex projects, we need to add multiple assemblies i.e. different add-ons and plugins etc.
  • So, Internal variables can be used in the current assembly / project only, we can't access it in external assemblies.
  • We will look at them in detail, in our coming lectures.

5. Protected Internal - Access Modifier in C#

  • Protected Internal Modifier allows the C# Type Members to be accessed in the containing assembly as well as in those classes ( of external assemblies ), which are inherited from the containing class.
  • When we will be done with these basic concepts in C#, then we will design few complex projects and then you will get better understanding of these access Modifiers.
So, that was all about Access Modifiers. In the coming lecture, we will have a look at Enumerations in C#. Till then take care & have fun !!! :)


JLCPCB – Prototype 10 PCBs for $2 (For Any Color)

China’s Largest PCB Prototype Enterprise, 600,000+ Customers & 10,000+ Online Orders Daily
How to Get PCB Cash Coupon from JLCPCB: https://bit.ly/2GMCH9w

Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir