advantages of using encapsulation in c#