| | 1 | | namespace ArbitraryExtensions.Core |
| | 2 | | { |
| | 3 | | public static class BoolExtensions |
| | 4 | | { |
| | 5 | | /// <summary>Toggles the provided value</summary> |
| | 6 | | /// <param name="value">the value to toggle</param> |
| | 7 | | /// <returns>the toggled value (true -> false or vice versa)</returns> |
| 2 | 8 | | public static bool Toggle(this bool value) => !value; |
| | 9 | |
|
| | 10 | | /// <summary>Toggles the provided value</summary> |
| | 11 | | /// <param name="value">the value to toggle</param> |
| | 12 | | /// <param name="toggleNull">flag to toggle null value, defaults to false</param> |
| | 13 | | /// <returns>toggled value, if not null, otherwise depending on toggleNull param</returns> |
| | 14 | | public static bool? Toggle(this bool? value, bool toggleNull = false) |
| 6 | 15 | | { |
| 6 | 16 | | if (value.HasValue) |
| 4 | 17 | | return !value; |
| | 18 | |
|
| 2 | 19 | | return toggleNull ? true : default(bool?); |
| 6 | 20 | | } |
| | 21 | | } |
| | 22 | | } |