Есть такой код но я не могу понять зачем тут нужен я гуглил и так и не понял что делает: [Conditional("DEBUG")] ,ссылка от куда я брал код https://docs.microsoft.com/ru-ru/archive/msdn-magazine/2009/february/patterns-wpf-apps-with-the-model-view-viewmodel-design-pattern.
[Conditional("DEBUG")]
[DebuggerStepThrough]
public void VerifyPropertyName(string propertyName)
{
// Убедитесь, что имя свойства соответствует реальному,
// public, свойство instance для этого объекта.
if (TypeDescriptor.GetProperties(this)[propertyName] == null)
{
string msg = "Invalid property name: " + propertyName;
if (ThrowOnInvalidPropertyName)
throw new Exception(msg);
else
Debug.Fail(msg);
}
}
Документацию по атрибуту можно найти здесь.
Назначение атрибута — вставлять отладочный код в программу, например, код дополнительного логгирования. Метод, помеченный таким атрибутом, может выводить окно с отладочной информацией или добавлять какие-то поля в HTTP-заголовки.
Метод будет вызываться только в том случае, если вы при сборке проекта определили макрос, который указан в параметре. В отладочной версии приложения всегда определён макрос DEBUG
:
#define DEBUG
Поэтому в отладочной версии этот метод вызывается. В релизе макроса нет, поэтому метод будет полностью удалён из сборки вместе с теми местами, где он вызывается.
Естественно, на этом методе не должно быть построено никакой логики, он должен быть void
.
В подавляющем большинстве случаев метод используется именно с макросом DEBUG
, но вы можете определять свои макросы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Дорогие друзья! Сразу прошу прощения за мою неопытностьИмею две формы, в которых есть ListBox
Нужно сгруппировать все паллеты по сроку годности, отсортировать по возрастанию срока годности, в каждой группе отсортировать паллеты по весу
В движок Unity встроен метод ScreenToWorldPoint(), который координаты точки на экране конвертирует в координаты соответствующей точки на карте(сцене/мире)Есть...