C# Tutorial

C# Tutorial C# First Application C# Variables C# Data Types C# Operators C# Keywords

C# Control Statement

C# If Statements C# Switch Statements C# for Loop C# While Loop C# do While loop C# Jump Statements C# Function C# functions with out variable

C# Arrays

C# Arrays

C# Function

C# Function call by value C# Call by reference C# Passing array to function C# Multidimensional Arrays C# Jagged Arrays C# Params C# Array Class C# Command Line Arguments

C# Object Class

C# Object and Classes C# Constructors C# Destructor C# this Keyword C# static field C# static class C# Static Constructor C# Structs C# enum C# Properties

C# Inheritance

C# Inheritance C# Multilevel Inheritance C# Aggregation C# Member overloading C# Method Overriding C# Base

C# Polymorphism

C# Polymorphism C# Sealed

C# Abstraction

C# Abstraction C# Interface

C# Namespace

C# Namespace C# Access Modifiers C# Encapsulation

C# Strings

C# String

C# Misc

C# Design Patterns Dictionary in C# Boxing and Unboxing in C# Ref and Out in C# Serialization in C# Dispose and Finalize in C# CONSOLE LOG IN C# Get File extension in C# Insert query in c# Difference Between List and Dictionary in C# Getters and Setters in C# Extension Methods in C# Insert query in c# CONSOLE LOG IN C# Get File extension in C# Random.NextDouble() Method in C# Binary Search in C# Difference between Delegates and Interfaces in C# Double.IsFinite() Method in C# Index Constructor in C# Abstraction in C# Basic OOPS Concepts In C# Queue.CopyTo() Method in C# single.compareto() method in C# C# Throw Exception in Constructor DECODE IN C# file.setlastwritetimeutc() method in C# Convert Object to List in C# convert.ToSByte(string, IFormatProvider) Method in C# C# Declare Delegate in Interface console.TreatControl C As Input property in C# Copying the queue elements to 1-D Array in C# Array.Constrainedcopy() Method in C# C# in and out Char.IsLetterOrDigit() method in C# Debugging in C# decimal.compare() method in C# Difference between Console.Read and Console.Readline in C# Metadata in C# C# Event Handler Example Default Interface Methods in C# Difference between hashtable and dictionary in C# C# program to implement IDisposable Interface Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File C# Error Logging C# ENCRIPTION Can we create an object for Abstract Class in C# Console.CursorVisible in C# SortedDictionary Implementation in C# C# Hash Table with Examples Setting the Location of the Label in c# Collections in c# Virtual Keyword in C# Reverse of string in C# String and StringBuilder in C# Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File Difference between ref and out in C# Singleton Class in C# Const And Readonly In Csharp BinaryReader and BinaryWriter in C# C# Attributes C# Delegates DirectoryInfo Class in C# Export and Import Excel Data in C# File Class in C# FileInfo Class in C# How to Cancel Parallel Operations in C#? Maximum Degree of Parallelism in C# Parallel Foreach Loop in C# Parallel Invoke in C# StreamReader and StreamWriter in C# TextReader and TextWriter in C# AsQueryable() in C# Basic Database Operations Using C# C# Anonymous Methods C# Events C# Generics C# Indexers C# Multidimensional Indexers C# Multithreading C# New Features C# Overloading of Indexers Difference between delegates and events in C# Operator overloading in C# Filter table in C# C# Queue with Examples C# Sortedlist With Examples C# Stack with Examples C# Unsafe Code File Handling in C# HashSet in C# with Examples List Implementation in C# SortedSet in C# with Examples C# in Depth Delegates and Events in C# Finally Block in C# How to Split String in C# Loggers in C# Nullable Types in C# REVERSE A STRING IN C# TYPE CASTING IN C# What is Generics in C# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# Atomic Methods Thread Safety and Race Conditions in C# Parallel LINQ in C# Design Principles in C# Difference Between Struct And Class In C# Difference between Abstraction and Encapsulation in C# Escape Sequence Characters in C# What is IOC in C# Multiple Catch blocks in C# Appdomain in C# Call back methods in C# Change Datetime format in C# Declare String array in C# Default Access Specifier in c# Foreach in LINQ C# How to compare two lists in C# How to Convert String to Datetime in c# How to get only Date from DateTime in C# Ispostback in asp net C# JSON OBJECT IN C# JSON STRINGIFY IN C# LAMBDA FUNCTION IN C# LINQ Lambda Expression in C# Microservices in C# MSIL IN C# Reference parameter in C# Shadowing(Method hiding) in C# Solid principles in C# Static Members in C# Task run in C# Transaction scope in C# Type Conversion in c# Unit of Work in C# Unit Test Cases in c# User Defined Exception in c# Using Keyword in C# Var Keyword in C# What is gac in C#

Encapsulation in C#

Encapsulation is a concept in Object Oriented Programming Systems (OOPS). It depicts the combining of data and associated processes into one entity or unit.

Encapsulation helps to hide an object's internal state from the outside world and only reveals the necessary functions.

Declaring a class's fields (or data) private and making its manipulating methods (accessors and mutators) public are the ways by which encapsulation is achieved.

How is Encapsulation achieved in C#?

With the help of access modifiers and Properties, encapsulation is achieved.

Access Modifiers:

In c# 4, mail access modifiers are present. These are public, private, internal, and protected.

  1. Public:

    Declaring methods, classes, or variables as public provides the accessibility of the code anywhere.

    2. Private:

    Declaring methods, classes, or variables as private ensures that the code is accessible only to the respected class members.

    3. Protected:

    Declaring methods, classes, or variables as protected ensures that the code is accessible only to the respected class members and derived class members.

    4. Internal:

    The code can only be accessed within the assembly. It cannot be accessed from another assembly.

    Properties:

    Properties include Getter and Setter methods, which allow encapsulation to be achieved. These techniques provide restricted access to a class's fields or underlying data.

    Example to represent how Getter and Setter methods are used in encapsulation:

    using System;

    public class Example

    {

        private string name; // Private field

        // Property with a getter and setter

        public string Name

        {

            get

            {

                return name;

             } // Getter method

            set

            {

                // Ensure that the name is not null

                if (!string.IsNullOrEmpty(value))

                {

                    name = value;

                }

                else

                {

                    Console.WriteLine("Name must not be empty");

                }

            } // Setter method

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            // Create an instance of the Example class

            Example example = new Example();

            // Set the name using the setter method

            example.Name = "Bebo";

            // Get and print the name using the getter method

            Console.WriteLine($"Name: {example.Name}");

            // Try setting an empty name

            example.Name = ""; // This will trigger the validation in the setter method

            // Get and print the name again

            Console.WriteLine($"Name: {example.Name}");

        }

    }

    Output:

    Encapsulation in C#

    In the following C# code, encapsulation is accomplished in the "Example" class by declaring a private field called "name," which is accessible via a property called "Name." This property allows for controlled access to the class's internal state using getter and setter methods.

    By retrieving the name field's value, the getter method makes sure that external code can access the data without having to change the underlying field directly. Concurrently, the setter method enforces restrictions like non-null and non-empty values and validates and assigns new values to the name.

    The Main method demonstrates the usefulness of encapsulation in restricting access to class members and enforcing data restrictions by using the encapsulated property to set and retrieve the name value. Overall, the code demonstrates how encapsulation in C# programming promotes modularity, security, and maintainability.

    Example Code in C# to show encapsulation:

    using System;

    public class Student

    {

        private string name;

        private int student_id;

        Private String gender;

        public string Name

        {

             get

             {

                return name;

             }

             set

             {

               name = value;

              }

        }

        public int Student_id

        {

            get

            {

                   return student_id;

              }

            private set

             {

                 student_id = value;

              }

        }

        public String Gender;

        {

            get

             {

                  return gender;

              }

            private set

            {

                gender = value;

            }

        }

        public Student(string name, int student_id, String gender)

        {

            this.name = name;

            This.student_id= student_id;

            this.gender = gender;

        }

        public void DisplayStudentDetails()

        {

            Console.WriteLine($"Student Name: {Name}");

            Console.WriteLine($"Student ID: {StudentId}");

            Console.WriteLine($"Gender: {Gender}");

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            // Creating a new student object

            Student student1 = new Student("Alice", 1001, "Female");

            // Displaying student details

            Console.WriteLine("Student Details:");

            student1.DisplayStudentDetails();

           Student student2 = new Student("Bebo", 1002, "male");

           student2.DisplayStudentDetails();

         }

    }

    Output:

    Encapsulation in C#

    The provided code demonstrates the C # encapsulation. Using public properties, the "Student" class contains the student's name, ID, and gender in private fields. The constructor initializes these fields using values supplied as arguments. The student's data is printed out using the "DisplayStudentDetails()” function.

    An instance of a "Student" class is created, and its details are shown in the Main method. Compilation errors occur when one tries to alter an encapsulated field outside of the class, demonstrating how encapsulation safeguards the internal state. By limiting access to class members and encouraging modularity, maintainability, and security in software development, encapsulation protects data integrity. It offers a tidy interface for external interaction while enabling the class to control its internal state.