Lazy.cs 552 B

1234567891011121314151617181920212223242526272829
  1. using System;
  2. namespace SharpCompress
  3. {
  4. public class Lazy<T>
  5. {
  6. private readonly Func<T> _lazyFunc;
  7. private bool _evaluated;
  8. private T _value;
  9. public Lazy(Func<T> lazyFunc)
  10. {
  11. _lazyFunc = lazyFunc;
  12. }
  13. public T Value
  14. {
  15. get
  16. {
  17. if (!_evaluated)
  18. {
  19. _value = _lazyFunc();
  20. _evaluated = true;
  21. }
  22. return _value;
  23. }
  24. }
  25. }
  26. }