Методы расширения вперед совместимы - PullRequest
5 голосов
/ 19 июля 2011

С помощью методов расширения мы можем легко добавлять методы к любому типу. Очевидно, это открывает возможность в будущей версии .net метод расширения больше не может вызываться (например, тип теперь включает метод с идентичной сигнатурой для метода расширения).

Должно ли это быть проблемой?

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

Ответы [ 3 ]

6 голосов
/ 19 июля 2011

Если в будущем структура будет сильно изменена, всегда будут проблемы с совместимостью.Если новый каркасный метод добавляется с тем же именем, что и ваш метод расширения, вполне вероятно, что они имеют одинаковую или, по крайней мере, очень похожую функциональность, и в любом случае требуется рефакторинг.из-за этого риска методы расширения слишком велики, чтобы их игнорировать.

0 голосов
/ 19 июля 2011

Боюсь, что единственное, что вы можете сделать, это предоставить достаточно уникальные имена для ваших методов расширения, так что вы на 100% уверены, что у вас никогда не возникнет конфликта.

Не говоря уже о добавлении имени вашей кошки к названию метода, просто постарайтесь быть более креативным:)

0 голосов
/ 19 июля 2011

Используйте непонятные имена методов, которые никогда не будут использоваться в каркасе.

edit - возможно, неясный было не самым подходящим словом, пожалуйста, замените его на осмысленная, но менее распространенная махинация

Попытка избежать конфликтов сигнатур - действительно единственная стратегия, позволяющая избежать хлопот при переработке кода (при условии, что функциональность метода расширения должна быть сохранена, а не просто преобразована).к определению метода в рамках).

...