public void DeviceKeySetImplementsIEquatable() { var key1 = FromXml <DeviceKey>("<Key1 Device='Keyboard' Key='Key_A' />"); var key2 = FromXml <DeviceKey>("<Key2 Device='Keyboard' Key='Key_A' />"); var key3 = FromXml <DeviceKey>("<Key3 Device='Keyboard' Key='Key_B' />"); var set1 = new DeviceKeySet(new[] { key1, key3 }); var set2 = new DeviceKeySet(new[] { key2, key3 }); var set3 = new DeviceKeySet(new[] { key1 }); Assert.Equal(set1, set2); Assert.Equal(set2, set1); Assert.Equal(set1.GetHashCode(), set2.GetHashCode()); Assert.NotEqual(set1, set3); Assert.NotEqual(set3, set1); Assert.True(set1.Equals((object)set2)); Assert.True(set2.Equals((object)set1)); Assert.NotEqual <object>(set1, set3); Assert.NotEqual <object>(set3, set1); #pragma warning disable CA1508 Assert.False(set1.Equals(null)); Assert.False(set2.Equals(null)); #pragma warning restore CA1508 Assert.False(set1.Equals("Not a device key set")); Assert.False(set2.Equals("Not a device key set")); }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { var newPressed = new DeviceKeySet(GetAllPressedModifiers()); if (!newPressed.Equals(_currPressed)) { _currPressed = newPressed; Changed?.Invoke(this, _currPressed); } }
private async void Timer_Elapsed(object sender, ElapsedEventArgs e) { try { var newPressed = new DeviceKeySet(GetAllPressedModifiers()); if (!newPressed.Equals(_currPressed)) { _currPressed = newPressed; Changed?.Invoke(this, _currPressed); } } catch (Exception ex) { // Reference: https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer?view=netcore-3.1#remarks await Task.FromException(ex).ConfigureAwait(false); } }