1. В C# 2.0 класс объявлялся примерно так:

 
   public class Point {
        private int _x;
        private int _y;
        
        public int X {
            get {
                return _x;
            }
            set {
                _x = value;
            }
        }
        public int Y {
            get {
                return _y;
            }
            set {
                _y = value;
            }
        }
    }

В C# 3.5 объявление свойств выглядит более компактно:

 
 public class Point {
        public int X {
            get;
            set;
        }
        public int Y {
            get;
            set;
        }
    }

или даже так:

 
 public class Point {
        public int X {
            get;
            private set;
        }
        public int Y {
            get;
            private set;
        }
    }

2. Появился оператор «??» — иногда его можно использовать вместо оператора «?:»

Вместо:

 
 Point point1 = null;
 // some code to initialise the point1...
 Point point2 = (point1 == null ? new Point() : point1);

Можно использовать следующий код, по функционалу аналогичный предыдущему:

 
  Point point1 = null;
  // some code to initialise the point1...
  Point point2 = (point1 ?? new Point());

3. Инициализация свойств объекта при его создании

Раньше:

 
  Point point = new Point();
  point.X = 1;
  point.Y = 1;

Сейчас:

 
 Point point = new Point() { X = 1, Y = 1};


Спрограммировали клёвый интернет-магазин? Не знаете как назвать магазин? Очень просто, в этом вам поможет сайт www.contentru.com.