Encapsulation

Even though the previous discussion has pretty much introduced the concept of encapsulation already, let’s translate the sample to the C# world first. Encapsulation enables members (including fields for state, as well as all the other members discussed in Chapter 11, “Fields, Properties, and Indexers,” Chapter 12, “Constructors and Finalizers,” and Chapter 13, “Operator Overloading and Conversions”) to be associated with a type. In fact, C# doesn’t allow global members that are defined outside a type (even though the CLR does). In this world, our counter looks like this:

class Counter {    private readonly int _id;    private int _i;    private static int s_n;    public Counter() {       _id= s_n++; ...

Get C# 5.0 Unleashed now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.