Представьте, что у объекта, с которым вы работаете, есть коллекция других связанных с ним объектов, например коллекция элементов управления в WinForm. Вы хотите проверить определенный объект в коллекции, но коллекция не имеет метода Contains()
. Существует несколько способов борьбы с этим.Использование необработанных исключений вместо Contains()?
- Внесите свой собственный метод
Contains()
, пройдя по пунктам в коллекции, чтобы узнать, есть ли у вас какой-либо из них. Это, по-видимому, подход «наилучшей практики». - Недавно я наткнулся на некоторый код, где вместо цикла, была предпринята попытка получить доступ к объекту внутри попробовать заявление следующим образом:
try { Object aObject = myCollection[myObject]; } catch(Exception e) { //if this is thrown, then the object doesn't exist in the collection }
Мой вопрос, как бедных практика программирования вы считаете вторым вариантом и почему? Какова эффективность его по сравнению с циклом в коллекции?