Skip to content

Access modifiers

Context: Access modifiers control the visibility of types and members.

ModifierAccessibility
publicAny code
privateOnly within the same class
protectedWithin the class or derived classes
internalWithin the same assembly
protected internalSame assembly OR derived classes in any assembly
private protectedSame assembly AND derived classes (C# 7.2+)
public class Vehicle
{
private string _vin; // only Vehicle
protected int _wheels; // Vehicle + derived
internal string _model; // same assembly
public void Start() { } // everyone
}
  • Class / struct / interface / enum: internal
  • Members (fields, methods, etc.): private