Language Basics C# Book

Class members including nested classes and structs can be declared with any of the five types of access.
Struct members cannot be declared as protected because structs do not support inheritance.
User-defined operators must always be declared as public.
Destructors cannot have accessibility modifiers.
The following code adds the Access Modifiers to the class
// public class:
public class Rectangle
{
// protected method:
protected void calculate() { }
// private field:
private int width = 3;
// protected internal property:
protected internal int Width
{
get { return width; }
}
}
You can specify how accessible your types and their members are by using the access modifiers.
The access modifiers are
public
protected
internal
protected internal
private.