Globals.cs 844 B

1234567891011121314151617181920212223242526272829
  1. namespace Asset_Cleaner {
  2. static class Globals<T> where T : class {
  3. static T _instance;
  4. public static T Value {
  5. get {
  6. Asr.IsFalse(_instance == null);
  7. return _instance;
  8. }
  9. set {
  10. var was = HasValue();
  11. _instance = value;
  12. // keep counter to check during deinitialization if all Globals are cleared
  13. if (was && !HasValue())
  14. __GlobalsCounter.Counter -= 1;
  15. if (!was && HasValue())
  16. __GlobalsCounter.Counter += 1;
  17. bool HasValue() => _instance != null;
  18. }
  19. }
  20. }
  21. static class __GlobalsCounter {
  22. internal static int Counter;
  23. public static bool HasAnyValue() => Counter > 0;
  24. }
  25. }