 <p>There is no special reason in this simplest case. But if you go further in development - it will become absolutely clear: you'll need to abstract from implementation and separate out an interface, e.g. just to mock Student in a unit test. So, in long terms you'll rather need interfaces and properties and it is just a habit to write it in a mockable and testable manner from the very beginning</p> <pre><code>public interface IStudent { int StudentId { get; set; } string StudentName { get; set; } string Address { get; set; } } public class Student : IStudent { public int StudentId { get; set; } public string StudentName { get; set; } public string Address { get; set; } } </code></pre>