Мы используем компонент внешней библиотеки в нашем приложении WPF.
В зависимости от того, где находится мышь, курсор должен измениться.
Для этого компонент запускает события, которые нам нужно обработать в обработчиках OnSetCursor и OnResetCursor. События запускаются почти каждый раз, когда мышь перемещается над компонентом, поэтому сотни раз в секундах.
В примерах из библиотек они делают что-то вроде этого:
private void OnResetCursor(object sender, EventArgs args)
{
if (myComponent.Cursor != System.Windows.Input.Cursors.Arrow)
myComponent.Cursor = System.Windows.Input.Cursors.Arrow;
}
myComponent
наследуется от FrameworkElement
, именно здесь определяется Cursor
.
Быстрый просмотр декомпилированного источника WPF показывает, что это просто автоматическое c свойство Cursor { get; set; }
Есть ли есть ли какой-либо недостаток для удаления чека?
private void OnResetCursor(object sender, EventArgs args)
{
myComponent.Cursor = System.Windows.Input.Cursors.Arrow;
}
Комментарий к обзору кода подсказывает мне, что код не должен содержать эту проверку, если она не вызывает нежелательного поведения.
Быстрый тест на моих машинах не показывает странного мерцания и ощутимого влияния на производительность. Но, возможно, есть случаи, которые я пропустил или не могу проверить локально.
Я не нашел никаких замечаний по этому поводу в документации Microsoft