当前位置: 首页>>代码示例>>C#>>正文


C# CacheManager.GetOrCreate方法代码示例

本文整理汇总了C#中CacheManager.GetOrCreate方法的典型用法代码示例。如果您正苦于以下问题:C# CacheManager.GetOrCreate方法的具体用法?C# CacheManager.GetOrCreate怎么用?C# CacheManager.GetOrCreate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CacheManager的用法示例。


在下文中一共展示了CacheManager.GetOrCreate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: NormalTest

        public void NormalTest()
        {
            var manager = new CacheManager<int, CacheObject>(CreateObject, 1000);

            var obj1 = manager.GetOrCreate(100);
            Assert.AreEqual(100, obj1.ObjectSize);
            Assert.AreEqual(1, manager.Count);
            Assert.AreEqual(100, manager.CacheSize);

            var obj1_2 = manager.GetOrCreate(100);
            Assert.AreEqual(obj1, obj1_2);
            Assert.AreEqual(1, manager.Count);
            Assert.AreEqual(100, manager.CacheSize);
            
            // size=500のオブジェクトは追加でキャッシュされるはず。
            var obj5 = manager.GetOrCreate(500);
            Assert.AreEqual(2, manager.Count);
            Assert.AreEqual(600, manager.CacheSize);

            // size=600のオブジェクトはsize100と500をまとめて削除するはず。
            var obj6 = manager.GetOrCreate(600);
            Assert.AreEqual(1, manager.Count);
            Assert.AreEqual(600, manager.CacheSize);

            // もう一回size=100のオブジェクトを作ると、新規作成されるはず。
            var obj1_3 = manager.GetOrCreate(100);
            Assert.AreEqual(2, manager.Count);
            Assert.AreEqual(700, manager.CacheSize);
            Assert.AreNotEqual(obj1, obj1_3);

            // もう一回size=500のオブジェクトを作ると、新規作成されるはず。
            var obj5_2 = manager.GetOrCreate(500);
            Assert.AreEqual(2, manager.Count);
            Assert.AreEqual(600, manager.CacheSize);
            Assert.AreNotEqual(obj5, obj5_2);
        }
开发者ID:leontius,项目名称:Ragnarok,代码行数:36,代码来源:CacheManagerTest.cs

示例2: MinusTest

        public void MinusTest()
        {
            var manager = new CacheManager<int, CacheObject>(CreateObject, 100);

            // ObjectSizeが負数になるようなオブジェクトを作成した場合
            Assert.Catch(() => manager.GetOrCreate(-100));
        }
开发者ID:leontius,项目名称:Ragnarok,代码行数:7,代码来源:CacheManagerTest.cs

示例3: ExceptionTest

        public void ExceptionTest()
        {
            var manager = new CacheManager<int, ExceptionObject>(CreateExceptionObject, 100);

            Assert.Catch(typeof(InvalidOperationException), () => manager.GetOrCreate(100));
        }
开发者ID:leontius,项目名称:Ragnarok,代码行数:6,代码来源:CacheManagerTest.cs

示例4: RandomTest

        public void RandomTest()
        {
            var manager = new CacheManager<int, CacheObject>(CreateObject, 100);

            // ObjectSizeが乱数を返すようなオブジェクトを登録する。
            var robj = manager.GetOrCreate(int.MaxValue);
            Assert.AreEqual(typeof(RandomCacheObject), robj.GetType());
            Assert.AreEqual(1, manager.Count);

            // size=200を登録すると、他の全てのオブジェクトが削除されるため、
            // この状態でCacheSizeが元に戻るか確認する。
            var obj2 = manager.GetOrCreate(200);
            Assert.AreEqual(1, manager.Count);
            Assert.AreEqual(200, manager.CacheSize);
        }
开发者ID:leontius,项目名称:Ragnarok,代码行数:15,代码来源:CacheManagerTest.cs


注:本文中的CacheManager.GetOrCreate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。