Подтвердить что ты не робот

Методы расширения и обычные методы - Идеи лучшей практики

Мне сложно определить время, когда нужно реализовать метод как метод расширения и когда реализовать метод как автономный метод. Каковы некоторые примеры лучшей практики, которые люди определяют при определении этого?

4b9b3361

Ответ 1

Используйте метод расширения, если выполнено одно из следующих условий:

  • Вам нужен метод для типа, и у вас нет источника.
  • Вам нужен метод для типа, у вас есть источник, а тип - это интерфейс.
  • Вам нужен метод для типа, у вас есть источник, но добавление метода создает нежелательную связь. *

В противном случае вы должны использовать реальный метод для самого фактического типа.

Я не думаю, что имеет смысл создать метод расширения для класса или структуры, для которого вы являетесь источником - зачем путать читателей с методом расширения, когда достаточно обычного метода?

Рекомендуемое чтение: Руководство по разработке рамок: методы расширения

* Представьте, что вы хотели добавить методы удобства к типу, но не хотите создавать зависимости от сборок или типов, которые не должны быть частью API. Вы можете использовать методы расширения для управления этим.

Ответ 2

fooobar.com/info/144847/...

С моей точки зрения, я использую методы расширения, когда у меня много полезных функций для определенного типа.

Я нахожу, что...

string.ExtensionMethod();

выглядит чище, чем...

StringHelper.ExtensionMethod("string to do something with");