Met de mogelijkheid om properties te gebruiken alsof het publieke variabelen zijn, is er geen enkele reden meer om variabele een access level van meer dan protected te geven. Properties bieden een hogere graad van encapsulatie en maken het o.a. mogelijk om 'lazy evaluation' toe te passen. Lazy evaluation betekent dat waarden pas ingelezen/geinitialiseerd worden op het moment dat ze gebruikt worden. Tevens kunnen properties virtual of zelfs abstract zijn. En als laatste: properties kunnen op een interface gedeclareerd worden.