Nếu chỉ có get, set thì về ý nghĩa sử dụng đa phần không khác gì biến public. Nhưng đó là cách viết của 1 property hết sức đơn sơ và bình thường và thực tế thì nó sẽ không chỉ có get, set. Khi đó bạn mới thấy khác biệt với biến public.
Ví dụ 3 cách thế này bạn sẽ thấy nó khác, bạn thử sử dụng xem nó khác thế nào.
public int MyInt{get; private set;}
public int MyInt{private get; set;}
private int _myint=0;
public int MyInt{
get{ return _myint;}
set{
if(value<0) _myint=0;
else if(value>100) _myint=100;
else _myint=value;
}
}