2013-05-29 5 views
0

В чем разница между реализациейC# свойство геттер и сеттер реализация

Class cl1 
{ 
    public int var{get;set;} 
} 

и

Class cl1 
{ 
    public int var; 
} 

Я имею в виду, как реализуются, как это -

void Main() 
{ 
    cl1 obj = new cl1(); 
    obj.var = 25; 
    int k = obj.var; 
} 

и если нет никакой разницы, тогда почему я вижу, что вторая реализация настолько распространена в библиотечных сборках?

ответ

0

Я думаю о две причины:

  1. это скрыть реализацию: свойство вар может использовать частное поле, которое не является вар или не может использовать частное поле на всех, и клиент не будет знать, это

  2. Легче изменить: если в вашем коде вы используете поле obj.var 100 раз, и в какой-то момент вы должны что-то изменить в этом поле, вы должны изменить все вызовы, а если у вас есть свойство, вы можете изменить реализацию проще, не изменяя весь вызов (по крайней мере, если вы не меняете подпись свойства)

вероятно другая причина того, что не приходит на ум прямо сейчас

+0

Спасибо большое, вторая причина кажется более подходящим. : D (y) –

+0

на самом деле я думаю, что первое более важно, во всяком случае, вы приветствуете :) –

Смежные вопросы