Access Modifiers in C#

Özlem Göksu
3 min readJan 20, 2024

--

The access modifier is used to set the access level/visibility for classes, fields, methods, and properties.

In the realm of C#, the efficacy and integrity of our codebase hinge upon a nuanced feature known as access modifiers. These seemingly innocuous keywords wield considerable influence, determining the accessibility of our code entities. Let’s delve into the fundamental why and how of access modifiers at a basic, yet essential, level.

The below order reflects the ordering of access declarations from broad to narrow in scope. public provides the broadest scope, while private provides the most limited scope.

Private

If you declare a field with a private access modifier, it can only be accessed within the same class like this:

If you try to access it outside the class, an error will occur:

Public

If you declare a field with a public access modifier, it is accessible for all classes:

Note: By default, all members of a class are private if you don't specify an access modifier:

class Computer
{
string model; // private
string memory; // private
}

Protected

The code is accessible within the same class, or in a class that is inherited from that class.

Internal

The code is only accessible within its assembly, but not from another assembly. The code must be in the same namespace briefly.

Note : By default, classes are internal if you don’t specify an access modifier.

class Animal // defaut internal

Understanding these access modifiers is essential for designing well-structured and maintainable code in C#. By choosing the appropriate access level for your members, you can control the visibility and accessibility of your code, ensuring that it meets the design and security requirements of your application.

Sources

https://bidb.itu.edu.tr/seyir-defteri/blog/2013/09/06/c-dilinde-eri%C5%9Fim-belirleyiciler-(access-modifiers)

https://chat.openai.com/

--

--