Мне нравится искать материал в like:-
bool basketContainsFruit(string fruit) {
return new[] { "apple", "orange", "banana", "pear" }.Contains(fruit);
}
списка Скорее, than:-
bool basketContainsFruit(string fruit) {
return fruit == "apple" || fruit == "orange" || fruit == "banana" ||
fruit == "pear";
}
не подходит так очень на практике, но идея соответствовать объектам против предмета поиска может быть действительно довольно полезна + сжатый.
То, как вы смотрите на атрибуты, сначала кажется правильным, но подумайте еще раз. На самом деле вы украшаете свой класс или что-то еще, чтобы что-то, что с ним работает, могло принять решение, а не чтобы класс сам мог принять решение. Для меня это было омрачено тем, как вы можете использовать атрибуты actionfilter в MVC, которые выглядят так, как будто они что-то делают, но это фреймворк, который выбирает события и соответственно использует атрибут. Я обычно стараюсь думать об атрибутах как об комментариях, с которыми моя программа работает.