int ProcGet22() { ProcGet12(); demo.Module1.Key key = new demo.Module1.Key(1); var v = demo.App.Instance.demo_Module1.Table2.Get(key); Assert.IsNotNull(v); Assert.IsTrue(v.Int1 == 1); Assert.IsTrue(v.Long2 == 2); Assert.IsTrue(v.String3.Equals("3")); Assert.IsTrue(v.Bool4); Assert.IsTrue(v.Short5 == 5); Assert.IsTrue(v.Float6 == 6); Assert.IsTrue(v.Double7 == 7); Assert.IsTrue(v.List9.Count == 1); Assert.IsTrue(v.Set10.Contains(10)); Assert.IsTrue(v.Set10.Count == 1); Assert.IsTrue(v.Map11.Count == 1); Assert.IsTrue(v.Bean12.Int1 == 12); Assert.IsTrue(v.Byte13 == 13); demo.App.Instance.demo_Module1.Table2.Remove(key); Assert.IsNull(demo.App.Instance.demo_Module1.Table2.Get(key)); return(Procedure.Success); }
public void Test() { // DEBUG 下垃圾回收策略导致 WeakReference 不回收。 #if RELEASE WeakHashSet <demo.Module1.Key> keys = new WeakHashSet <demo.Module1.Key>(); demo.Module1.Key key1 = new demo.Module1.Key(1); demo.Module1.Key key2 = new demo.Module1.Key(1); Assert.IsTrue(null == keys.get(key1)); keys.add(key1); demo.Module1.Key exist1 = keys.get(key1); Assert.IsTrue(null != exist1); Assert.IsTrue(exist1 == key1); demo.Module1.Key exist2 = keys.get(key2); Assert.IsTrue(null != exist2); Assert.IsTrue(exist2 == key1); key1 = null; key2 = null; exist1 = null; exist2 = null; demo.Module1.Key k4 = new demo.Module1.Key(1); WeakReference <demo.Module1.Key> wref = new WeakReference <demo.Module1.Key>(k4); k4 = null; for (int i = 0; i < 10; ++i) { System.GC.Collect(); GC.WaitForFullGCComplete(); GC.WaitForPendingFinalizers(); Thread.Sleep(200); if (false == wref.TryGetTarget(out var notusedk4ref)) { break; } } demo.Module1.Key k4ref; Assert.IsTrue(false == wref.TryGetTarget(out k4ref)); Assert.IsTrue(null == k4ref); demo.Module1.Key key3 = new demo.Module1.Key(1); Console.WriteLine("test: is null."); Assert.IsTrue(null == keys.get(key3)); #endif }
int ProcGet21() { ProcGet11(); demo.Module1.Key key = new demo.Module1.Key(1); Assert.IsNull(demo.App.Instance.demo_Module1.Table2.Get(key)); demo.Module1.Value v = new demo.Module1.Value(); v.Int1 = 1; v.Long2 = 2; v.String3 = "3"; v.Bool4 = true; v.Short5 = 5; v.Float6 = 6; v.Double7 = 7; v.List9.Add(new demo.Bean1()); v.Set10.Add(10); v.Map11.Add(1, new demo.Module2.Value()); v.Bean12.Int1 = 12; v.Byte13 = 13; demo.App.Instance.demo_Module1.Table2.Put(key, v); Assert.IsTrue(v == demo.App.Instance.demo_Module1.Table2.Get(key)); return(Procedure.Success); }
public void Test1() { { TableKey tkey1 = new TableKey(1, 1); TableKey tkey2 = new TableKey(1, 1); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, 0); } { TableKey tkey1 = new TableKey(1, 1); TableKey tkey2 = new TableKey(2, 1); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, -1); } { TableKey tkey1 = new TableKey(1, 1L); TableKey tkey2 = new TableKey(1, 1L); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, 0); } { TableKey tkey1 = new TableKey(1, 1L); TableKey tkey2 = new TableKey(1, 2L); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, -1); } { TableKey tkey1 = new TableKey(1, false); TableKey tkey2 = new TableKey(1, true); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, -1); } { TableKey tkey1 = new TableKey(1, 1); TableKey tkey2 = new TableKey(1, 2); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, -1); } { demo.Module1.Key k1 = new demo.Module1.Key(1); demo.Module1.Key k2 = new demo.Module1.Key(1); TableKey tkey1 = new TableKey(1, k1); TableKey tkey2 = new TableKey(1, k2); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, 0); } { demo.Module1.Key k1 = new demo.Module1.Key(1); demo.Module1.Key k2 = new demo.Module1.Key(2); TableKey tkey1 = new TableKey(1, k1); TableKey tkey2 = new TableKey(1, k2); int c = tkey1.CompareTo(tkey2); Assert.AreEqual(c, -1); } }