Ejemplo n.º 1
0
        public void UsesCreatorAfterReset()
        {
            bool didCallRef = false;
            var  refLazy    = new ResettableLazy <string>(() =>
            {
                if (didCallRef)
                {
                    return("Second");
                }
                didCallRef = true;
                return("First");
            });

            _ = refLazy.Value;
            refLazy.Reset();
            Assert.AreEqual("Second", refLazy.Value);

            bool didCallVal = false;
            var  valLazy    = new ResettableLazyValue <int>(() =>
            {
                if (didCallVal)
                {
                    return(1337);
                }
                didCallVal = true;
                return(42);
            });

            _ = valLazy.Value;
            valLazy.Reset();
            Assert.AreEqual(1337, valLazy.Value);
        }
Ejemplo n.º 2
0
        public void CanBeReset()
        {
            var refLazy = new ResettableLazy <string>(() => "");

            _ = refLazy.Value;
            refLazy.Reset();
            Assert.IsFalse(refLazy.HasValue);

            var valLazy = new ResettableLazyValue <int>(() => 0);

            _ = valLazy.Value;
            valLazy.Reset();
            Assert.IsFalse(valLazy.HasValue);
        }