And indexers. By making use of these constructs for oblique use of inner fields, it is possible to guard from invalid input values. This kind of property emulation is typical for programming languages that do not support properties - like normal C++. In C# there you must often prefer properties https://smartworlddeveloper.co.in/