Resource`1.cs 661 B

12345678910111213141516171819202122232425262728293031323334353637
  1. namespace PaintDotNet
  2. {
  3. public abstract class Resource<T>
  4. {
  5. protected T resource;
  6. public T Reference
  7. {
  8. get
  9. {
  10. if (this.resource == null)
  11. {
  12. this.resource = Load();
  13. }
  14. return this.resource;
  15. }
  16. }
  17. public T GetCopy()
  18. {
  19. return Load();
  20. }
  21. protected abstract T Load();
  22. protected Resource()
  23. {
  24. this.resource = default(T);
  25. }
  26. protected Resource(T resource)
  27. {
  28. this.resource = resource;
  29. }
  30. }
  31. }