Это как поле (глобальная переменная на уровне класса), но поле, скрытое за методами. Метод Get возвращает значение, метод Set устанавливает значение. А нужно, в отличии от обычного поля, для того, чтобы класс мог контролировать доступ к своему полю. Чтобы он мог при желании перехватить такой запрос и что-то с этим сделать. Можно прописать свойство по-умолчанию.
public int MyProp { get; set; }
А можно для get и set прописать логику.
Тогда доступ к такому свойству происходит так:
myObj.MyProp = 1;