Учитывая тот факт, что текущий C # 3.0 допускает автоматические свойства, синтаксис которых подобен:
public int Property {get; set;}
, дополнительная работа, требуемая для использования свойств по публичным полям, почти равна нулю. Дело в том, что вы никогда не можете быть полностью уверены, что поле не будет использоваться по-другому или аксессуар никогда не изменится, и, учитывая компромисс в работе, нет причин не реализовывать свойство.
В любом случае, анализатор жалуется на вещи, которые в высоком проценте (в данном случае, например, 99,99% случаев) являются плохой практикой программирования ... но в любом случае он просто жалуется. Поля могут быть обнародованы, и есть некоторые крайние случаи, когда его прямое использование может быть оправдано. Как всегда, используйте свой здравый смысл ... но имейте в виду элементальное правило для лучших методов программирования ... Есть ли действительно веская причина нарушить соглашение? Если есть дальше, если нет, или если ответ «это требует больше работы», тогда придерживайтесь практики ...
Заключение символов в одинарные кавычки сохраняет буквальное значение каждого символа в кавычках.
Попробуйте это:
sed -i '' "s~$testPattern~$test~g" $(find . -name '*.php')
Ваша строка sed находится в одинарных кавычках. Расширения переменных там не происходит. Переключиться на двойные кавычки:
find . -name "*.php" -exec sed -i -e "s/$testPattern/$test/g" {} \;