Access Modifiers private, public, protected, internal c# In Hindi
C# प्रोग्रामिंग लैंग्वेज में क्लास एक्सेस मॉडिफ़ायर फीचर ऐसे रिजर्व्ड कीवर्ड होते हैं, जो किसी यूजर डिफाइन क्लास प्रोग्राम में उसके डाटा टाइप और क्लास मेंबर्स जैसे क्लास फ़ील्ड, प्रॉपर्टी, मेथड, आदि की करंट एक्सेसिबिलिटी या विज़िबिलिटी को डिफ़ाइन करते हैं। किसी क्लास में ये सब कुछ एक्सेस मॉडिफ़ायर के माध्यम से कंट्रोल एक्सेस किए जाते हैं, जिससे कि किसी मौजूदा क्लास डाटा एलिमेंट या स्ट्रक्चर के एलिमेंट को उनके रुट क्लास या ग्रुप कलेक्शन के बाहर से कैसे एक्सेस और कण्ट्रोल किया जा सके।

There are four main types of access modifiers in the C# programming.
- Private access modifiers.
- Public access modifiers.
- Protected access modifiers.
- Internal access modifiers.
यहाँ ऊपर डिफाइन हर क्लास एक्सेस मॉडिफ़ायर किसी क्लास या स्ट्रक्चर के इंडिविजुअल पार्ट एलिमेंट के लिए क्लास एलिमेंट के एक्सेसिबिलिटी स्कोप को डिफ़ाइन करने में हेल्प करता है।
So, let’s explore the access modifier concept in the C# programming.
Private Access Class Modifier.
- Private Access Class Modifier Scope – C# प्रोग्राम में डिक्लेअर प्राइवेट एक्सेस क्लास पैरामीटर मेंबर सिर्फ़ कंटेनिंग रुट या पैरेंट क्लास के अंदर से ही एक्सेस और कॉल किए जा सकते है।
- Private Access Class Modifier Use Case – C# प्रोग्राम में सामान्य रूप से क्लास प्राइवेट एक्सेस मॉडिफ़ायर उन क्लास फ़ील्ड या यूजर डिफाइन क्लास मेथड के लिए यूज़ किया जाता है. जिन्हें किसी क्लास में एक्सटरनली डायरेक्ट एक्सेस नहीं किया जाना चाहिए। यह मैक्सिमम आर्डर में किसी क्लास में एनकैप्सुलेशन कांसेप्ट फीचर्स को प्रोवाइड करता है।
Example of a Private Access Class Modifier.
using System;
class Employee
{
private string emp_name; // here it Accessible only within the Employee class field member
private int emp_age; // here it Accessible only within the Employee class field member
// here we set Public class method to set with emp_name field value
public void SetName(string emp_name)
{
this.emp_name = emp_name;
}
// here we use Public class method to get emp_name field value
public string GetName()
{
return emp_name;
}
// here we define a Public class method to set emp_age field value
public void SetAge(int emp_age)
{
this.emp_age = emp_age;
}
// here we use a Public class method to get emp_age field value
public int GetAge()
{
return emp_age;
}
}
class Program
{
static void Main(string[] args)
{
// here we Create object of Employee class
Employee employeesfirst = new Employee();
// here we Set values using public class methods
employeesfirst.SetName(“Bhavishi Deora”);
employeesfirst.SetAge(21);
// here it Get and display employee class values
Console.WriteLine(“Employee Name is – ” + employeesfirst.GetName());
Console.WriteLine(“Employee Age is – ” + employeesfirst.GetAge());
}
}
Here in the Private Access Class Modifier example.
- यहाँ एम्प्लॉई क्लास में फ़ील्ड emp_name और emp_age एक प्राइवेट क्लास मेंबर के रूप में डिफाइन हैं, और Employee क्लास में एक्सटरनली डायरेक्ट एक्सेस नहीं किए जा सकता है। जैसा की, यहाँ एम्प्लॉई क्लास में SetName() और GetName() फंक्शन मेथड यूजर डिफाइन क्लास मेथड कंट्रोल्ड और एक्सेस प्रोवाइड करते हैं।
Public Access Class Modifier.
- Public Access Class Modifier Scope – C# प्रोग्राम में डिक्लेअर पब्लिक क्लास पैरामीटर डाटा टाइप मेंबर क्लास में कहीं से भी एक्सेस और कण्ट्रोल किए जा सकते है। पब्लिक क्लास मेंबर यूनिवर्सल डाटा टाइप के जैसे होते है, इन्हे क्लास प्रोग्राम में किसी भी प्रकार की कालिंग रोक नहीं है।
- Public Access Class Modifier Use Case – C# प्रोग्राम में उन यूजर डिफाइन क्लास मेंबर्स क्लास फ़ील्ड्स, मेथड्स, प्रॉपर्टीज़ के लिए यूज़ किया जाता है. जिन्हें किसी अन्य दूसरी क्लास से एक पब्लिक डाटा टाइप क्लास मेंबर की तरह एक्सेस करने की ज़रूरत होती है. आप पब्लिक क्लास मेंबर को किसी कंटेनिंग असेंबली क्लास के बाहर से भी डायरेक्ट एक्सेस कर सकते है।
Example of a Public Access Class Modifier.
using System;
class Employee
{
public string Emp_Name; // here public class member Emp_Name Can be accessed from anywhere in class
public int Emp_Age; // here public class member Emp_Age Can be accessed from anywhere in class
// here we use class Method to display employee class information
public void EmployeeInfo()
{
Console.WriteLine($”\n Employee Name is – {Emp_Name} \n Employee Age is – {Emp_Age}”);
}
}
class Program
{
static void Main(string[] args)
{
// here we Create a object for Employee class member
Employee employeesfirst = new Employee();
// here we Assign a employee Claas values
employeesfirst.Emp_Name = “Siddhi Deora”;
employeesfirst.Emp_Age = 19;
// here we use a class Call method
employeesfirst.EmployeeInfo();
}
}
Public Access Class Modifier Example Explanation.
- यहाँ एम्प्लॉई क्लास में, Emp_Name, Emp_Age, और EmployeeInfo() मेंबर्स सभी पब्लिक नेचर के साथ डिफाइन हैं, और उन्हें Employee क्लास के बाहर के किसी भी दूसरे क्लास या नेमस्पेस से डायरेक्ट एक्सेस और कण्ट्रोल किया जा सकता है।
Protected Class Access Modifier.
- Protected Class Access Modifier Scope – C# प्रोग्राम में डिक्लेअर प्रोटेक्टेड क्लास मेंबर डाटा टाइप वेरिएबल एलिमेंट को उसमें मौजूद क्लास और डिराइव्ड क्लास सबक्लास एलिमेंट डाटा टाइप मेथड के अंदर से ही एक्सेस और कण्ट्रोल किया जा सकता है।
- Protected Class Access Modifier Use Case – C# प्रोग्राम में प्रोटेक्टेड क्लास एक्सेस मॉडिफायर का यूज़ तब किया जाता है, जब आप मौजूदा क्लास में डिराइव्ड क्लास के मेंबर एलिमेंट को एक्सेस प्रोवाइड करना चाहते हैं. लेकिन उस क्लास हायरार्की के बाहर से इन्हे एक्सेस या कण्ट्रोल नहीं किया जा सकता है।
Example of a Protected Class Access Modifier.
using System;
class Staff
{
protected string emp_name; // here it Accessible within this define class and derived subclass member
protected int emp_age; // here it Accessible within this define class and derived subclass member
// here we create a staff name class Constructor
public Staff(string emp_name, int emp_age)
{
this.emp_name = emp_name;
this.emp_age = emp_age;
}
}
class Employee : Staff
{
public string Department;
// here we usee employee name class Constructor
public Employee(string emp_name, int emp_age, string department) : base(emp_name, emp_age)
{
this.Department = department;
}
// here we use Method to display employee information
public void EmployeeInfo()
{
Console.WriteLine($”\n Employee Name is – {emp_name} \n Employee Age is – {emp_age} \n Employee Department is – {Department}”);
}
}
class Program
{
static void Main(string[] args)
{
// here we Create a Employee class object
Employee emp1 = new Employee(“Harry Deora”, 24, “Ai Engineer”);
// here we try to Display employee member detail information
emp1.EmployeeInfo();
}
}
Here in the Protected Class Access Modifier example.
- यहाँ इस प्रोग्राम में emp_name और emp_age क्लास फ़ील्ड प्रोटेक्टेड के रूप में डिफाइन हैं, इसका मतलब है कि उन्हें Employee क्लास (जो Staff क्लास से बनी है) को डायरेक्ट एक्सेस कर सकते है. लेकिन इन क्लास के बाहर से इन क्लास मेंबर्स और क्लास डाटा को एक्सेस नहीं किया जा सकता है।
Internal Access class Modifier.
- Internal Access Class Modifier Scope – C# प्रोग्राम में डिक्लेअर इंटरनल एक्सेस क्लास मॉडिफायर मेंबर को उसी क्लास असेंबली के अंदर से एक्सेस किया जा सकता है. लेकिन इन क्लास मेंबर को किसी भी क्लास असेंबली के बाहर से एक्सेस या कण्ट्रोल नहीं किया जा सकता है।
- Internal Access Class Modifier Use Case – C# प्रोग्राम में डिक्लेअर में इंटरनल एक्सेस क्लास मॉडिफायर ज्यादातर उन क्लास मेंबर्स के लिए यूज़ किया जाता है. जो सिर्फ़ उस क्लास असेंबली (प्रोजेक्ट) के अंदर से ही यूज़ किए जाने के लिए डिफाइन होते हैं. लेकिन ये उन बाहरी क्लास प्रोजेक्ट्स के लिए एक्सपोज़ नहीं होते है. जो क्लास में असेंबली को रेफर करते हैं।
Example of Internal Access Class Modifier.
using System;
class Employee
{
internal string Emp_Name; // here Emp_Name field Accessible only within the same class assembly element
internal int Emp_Age; // here Emp_Age field Accessible only within the same class assembly element
// here we define a class Method to display employee information
internal void EmployeeInfo()
{
Console.WriteLine($”\n Employee Name is – {Emp_Name} \n Employee Age is – {Emp_Age}”);
}
}
class Program
{
static void Main(string[] args)
{
// here we Create object of Employee class member
Employee employees = new Employee();
// herew we Assign employee class element values
employees.Emp_Name = “Siddhi Deora”;
employees.Emp_Age = 19;
// here we use Call class method
employees.EmployeeInfo();
}
}
Here in the Internal Access Class Modifier example.
- यहाँ इस एक्साम्प्ल में Emp_Name, Emp_Age, और EmployeeInfo() मेंबर्स इंटरनल क्लास फील्ड हैं, इस वजह से उन्हें उसी क्लास असेंबली के अंदर किसी भी क्लास से एक्सेस और कण्ट्रोल किया जा सकता है. लेकिन किसी अन्य दूसरी असेंबली के क्लास से इन्हे एक्सेस नहीं किया जा सकता है. चाहे वह असेंबली में मौजूदा असेंबली को रेफर करे।
Combining Multiple Access Modifiers in a Class.
C# प्रोग्रामिंग लैंग्वेज में आप मल्टीप्ल क्लास मेंबर्स डाटा एलिमेंट की एक्सेसिबिलिटी पर डिटेल कंट्रोल प्रोवाइड करने के लिए अधिक कम्प्लेक्स प्रोग्राम कंडीशन सिनेरियो में क्लास एक्सेस मॉडिफ़ायर्स को ग्रुप कर यूज़ कर सकते हैं। जैसे, किसी यूजर डिफाइन क्लास में एक मेथड पब्लिक डिफाइन हो सकता है. लेकिन यहाँ जरूरत पड़ने पर एक इंटरनली प्राइवेट क्लास फ़ील्ड को कॉल और मैनेज कर सकते है।
Example of Multiple Access Modifiers access levels.
using System;
class Employee
{
private string Emp_name; // here emp_name class field Only accessible within the Employee class
public int Emp_Age; // here Emp_Age class field Accessible from anywhere in the class
protected string Location; // here Location class field Accessible within the class and derived subclass
internal string Email; // here email class field Accessible within the same class assembly
// here we use Public method to set emp_name
public void SetName(string updateName)
{
Emp_name = updateName;
}
// here we use Public method to set employee location
public void SetLocation(string updateLocation)
{
Location = updateLocation;
}
// here we use Method to display employee data information
public void EmployeeInfo()
{
Console.WriteLine($”\n Employee Name is – {Emp_name} \n Employee Age is – {Emp_Age} \n Employee Location is – {Location} \n Employee Email is – {Email}”);
}
}
class Program
{
static void Main(string[] args)
{
// here we Create a object for Employee class
Employee employees = new Employee();
// here we manual Set values for employee class member
employees.SetName(“Harry Deora”);
employees.Emp_Age = 24;
employees.SetLocation(“Mumbai, Maharastra”);
employees.Email = “harry@domain.com”;
// here we Display employee class information
employees.EmployeeInfo();
}
}
Multiple Access Modifiers access example Explanation.
- यहाँ ऊपर दिए गए प्रोग्राम एक्साम्प्ल में Emp_name प्राइवेट डिफाइन है, और इसे Employee क्लास के बाहर से एक्सेस या कण्ट्रोल नहीं किया जा सकता है।
- एम्प्लॉई Emp_Age पब्लिक डिफाइन क्लास मेंबर या फील्ड है, इस वजह से इसे कहीं से भी मौजूदा प्रोग्राम क्लास में एक्सेस और कण्ट्रोल किया जा सकता है।
- इसी प्रकार Location क्लास फील्ड प्रोटेक्टेड नेचर में डिफाइन है, इसका मतलब है कि इसे Employee क्लास और Employee से डिराइव्ड किसी भी क्लास के अंदर एक्सेस और कण्ट्रोल किया जा सकता है।
- Email एक इंटरनल क्लास मेंबर डाटा टाइप है, इसका मतलब है कि इसे सिर्फ़ उसी क्लास असेंबली के अंदर एक्सेस और कण्ट्रोल किया जा सकता है।
Additional Class Access Modifiers.
- protected internal – C# प्रोग्राम में डिफाइन इस मॉडिफ़ायर वाले क्लास मेंबर को उसी असेंबली में या डिराइव्ड क्लास से एक्सेस और कण्ट्रोल किया जा सकता है, चाहे वे किसी दूसरी असेंबली में डिफाइन हों।
- private protected – C# प्रोग्राम में इस मॉडिफ़ायर वाले क्लास मेंबर डाटा टाइप को सिर्फ़ उसी असेंबली में कंटेनिंग क्लास या डिराइव्ड क्लास में ही एक्सेस और कण्ट्रोल किया जा सकता है।
Example of protected internal and private protected class members.
class Employee
{
protected internal string Emp_Name; // यह एम्प्लॉई क्लास में उसी असेंबली या डिराइव्ड क्लास में एक्सेसिबल हो सकता है
private protected string Location; // यह एम्प्लॉई क्लास में उसी असेंबली में उसी क्लास और डिराइव्ड क्लास में एक्सेसिबल हो सकता है
}
Detail Information About Class Access Modifiers in c#.
| Modifier | Each class Accessibility | Where to Use Case |
| private | Private class field Only used within the containing class member | Private class member helps us to manage Data encapsulation with (prevent external access) method |
| public | Public class member can be access from anywhere (no restrictions) inside everywhere class member | Public class member used to Expose members to external code or other assemblies |
| protected | Protected class member called or Containing class and derived classes with access | Protected class member Allow you to access in derived classes (inheritance) features |
| internal | Internal class member assign Within the same assembly (project) | Internal class member Expose to code within the same assembly but not to other assemblies |
Detailed Summary of Access Modifiers: private, public, protected, internal class element.
- private – प्राइवेट डिफाइन क्लास फील्ड सिर्फ उसी कंटेनिंग क्लास तक एक्सेस और कण्ट्रोल प्रोवाइड करते है।
- public – पब्लिक डिफाइन क्लास फील्ड मेंबर मौजूदा क्लास में कहीं से भी बिना रोक-टोक के डायरेक्ट एक्सेस और कण्ट्रोल प्रोवाइड करते है।
- protected – प्रोटेक्टेड क्लास में डिफाइन क्लास मेंबर सिर्फ उसी कंटेनिंग क्लास और डिराइव्ड क्लास मेंबर में एक्सेस और कण्ट्रोल प्रोवाइड करता है।
- internal – यह मौजूदा क्लास में उसी असेंबली में एक्सेस प्रोवाइड करता है।
- protected internal – प्रोटेक्टेड क्लास मेंबर उसी असेंबली में या डिराइव्ड क्लास से एक्सेस प्रोवाइड करता है।
- private protected – यह मौजूदा क्लास उसी असेंबली में कंटेनिंग क्लास और डिराइव्ड क्लास में एक्सेस और कण्ट्रोल प्रोवाइड करता है।
