C# Classes and Properties

A class bundles data and the methods that work on it. A property such as Value looks like a field to callers but is really a pair of accessors. Declaring set as private means outside code can read Value but cannot assign it.

C#
using System;

class Counter {
  public int Value { get; private set; }

  public void Increment() {
    Value++;
  }
}

class Program {
  static void Main() {
    var counter = new Counter();
    counter.Increment();
    counter.Increment();
    Console.WriteLine(counter.Value);
  }
}
Read the full lesson