Pull to refresh

Comments 2

Автопроперти очень даже хороши.
Часто бывают ситуации, когда есть интерфейс с геттером, и класс реализует его с помощью автопроперти с приватным сеттером:
interface IA
  {
    int Foo { get; }
  }

  class A : IA
  {
    public int Foo { get; private set; }

    public A(int foo)
    {
      Foo = foo;
    }
  }

Второй вполне хороший пример:
class A
  {
    protected int Foo { get; private set; }

    public A(int foo)
    {
      Foo = foo;
    }
  }

  class ADerived : A
  {
    public ADerived(int foo) : base(foo)
    {
    }

    public int SomeMethod()
    {
      return Foo*2;
    }
  }
Совершенно верно. Автор исключил из рассмотрения автосвойства с приватными сеттерами. В другой статье он так же замечает, что свойства хороши в качестве инструмента для облегчения изменений при смене версий, при разработке публичного API.

Автор указывает на недостатки именно таких видов свойств, которые он приводит в пример)
Sign up to leave a comment.

Articles