Esempio n. 1
0
 /// <summary>
 /// 2. 泛型內靜態成員共同使用
 /// </summary>
 public void GenericStaticExample2()
 {
     Console.WriteLine(MyList2.WorkingMethod <int>());
     Console.WriteLine(MyList2.WorkingMethod <string>());
     Console.WriteLine(MyList2.WorkingMethod <int>());
     //共用一個靜態變數 ,輸出為 1,2,3
 }
Esempio n. 2
0
        public void Test()
        {
            MyList <int> l1 = new MyList2 <int>();
            MyList <int> l2 = new MyDict <int, float>();

            // Compilerfehler
            //MyList<int> l3 = new MyList<float>();
        }
Esempio n. 3
0
        public void Test2()
        {
            var l = new MyList2 {
                new MyItem("tom")
            };
            string act = XmlSerializer <MyList2> .Xml.Serialize(l);

            var root = XElement.Parse(act);

            Assert.AreEqual("List", root.Name.LocalName);
            Assert.AreEqual("tom", root.Element("Item").Element("Name").Value);
        }
Esempio n. 4
0
        public void Test2()
        {
            var l = new MyList2 {
                new MyItem("tom")
            };
            string act = XmlSerializer <MyList2> .Xml.Serialize(l);

            bool b1 = act == "<?xml version=\"1.0\"?>\r\n<List xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <Item>\r\n    <Name>tom</Name>\r\n  </Item>\r\n</List>";
            bool b2 = act == "<?xml version=\"1.0\"?>\r\n<List xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n  <Item>\r\n    <Name>tom</Name>\r\n  </Item>\r\n</List>";

            Assert.IsTrue(b1 || b2);
        }
Esempio n. 5
0
        private async void Share_click1(object sender, RoutedEventArgs e)
        {
            var dc   = (sender as FrameworkElement).DataContext;
            var item = (MyList2.ContainerFromItem(dc) as ListViewItem).Content as FriendList;

            sharetitle       = item.NickName;
            sharedescription = "这是我的好朋友";

            shareimg = await Package.Current.InstalledLocation.GetFileAsync("Assets\\weixin256.png");

            DataTransferManager.ShowShareUI();
        }
Esempio n. 6
0
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            var dc   = (sender as FrameworkElement).DataContext;
            var item = (MyList2.ContainerFromItem(dc) as ListViewItem).Content as FriendList;

            if (item != null)
            {
                foreach (var member in ContactView.AllItems)
                {
                    if (member.UserName == item.UserName)
                    {
                        return;
                    }
                }
                ContactView.AllItems.Insert(0, item);
            }
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            MyList2 <string> fighters = new MyList2 <string>();

            fighters.Add("'1' George 'Rush' Saint Pierre >> Middleweight >> 26-2-0");
            Console.WriteLine(fighters.Length);


            fighters.Add("'2'Jon 'Bones' Jones  >> Light Heavyweight >> 26-1-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'3' Khabib 'The Eagle' Nurmagomedov  >> Lightweight >> 29-0-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'4' Anderson 'The Spider' Silva >> Middleweight >> 34-11-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'5' Demetrious 'Might Mouse' Johson >> Bantamweight >> 30-3-1");
            Console.WriteLine(fighters.Length);

            fighters.Add("'6' Fedor Emelianenko >> Heavyweight >> 39-6-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'7' Stipe Miocic >> Heavyweight >> 20-3-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'8' Daniel Cormier >> Heavyweight >> 22-3-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'9' Dustin Poirier >> Lightweight >> 27-6-0");
            Console.WriteLine(fighters.Length);

            fighters.Add("'10' Conor McGregor >> Lightweight >> 22-5-0");
            Console.WriteLine(fighters.Length);

            Console.WriteLine("<<<<<<<<<<BEST UFC FİGHTERS OF ALL TİME>>>>>>>>> ");


            foreach (var x in fighters.Items)
            {
                Console.WriteLine(x);
            }
        }
Esempio n. 8
0
        public void CreateComplexList_ReturnExpressionAsString()
        {
            var values = new MyList2
            {
                MyProp = 100
            };

            values.Add(new StringBuilder("value1"));
            values.Add(new StringBuilder("value2"));

            var expression = values.AsExpression();
            var result = expression.DefaultSerializer.Serialize();
            var expected = $"\"{values.GetType().Name}.{values.GetHashCode()}\" + \"[0].{values[0].GetHashCode()}\" + \"[1].{values[1].GetHashCode()}\" + \"MyProp: 100\" + \"Capacity: 4\" + \"Count: 2\"";
            Assert.Equal(6, expression.Count);
            Assert.IsType<ComplexEntity>(expression[0]);
            Assert.IsType<CollectionItemEntity>(expression[1]);
            Assert.IsType<CollectionItemEntity>(expression[2]);
            Assert.IsType<PropertyEntity>(expression[3]);
            Assert.IsType<PropertyEntity>(expression[4]);
            Assert.IsType<PropertyEntity>(expression[5]);
            Assert.Equal(expected, result);
        }
Esempio n. 9
0
        public void CreateComplexDictionaryWithComplexKeyNoMembers_ReturnExpressionAsString()
        {
            var dic = new Dictionary <MyList2, MyList2>();

            dic[new MyList2()] = new MyList2();
            dic[new MyList2()] = new MyList2();
            dic[new MyList2()] = new MyList2();

            var enumerator = ((IDictionary)dic).GetEnumerator();

            enumerator.MoveNext();
            var key1 = enumerator.Current.GetHashCode();

            enumerator.MoveNext();
            var key2 = enumerator.Current.GetHashCode();

            enumerator.MoveNext();
            var key3 = enumerator.Current.GetHashCode();

            var expression = dic.AsExpression();
            var result     = expression.DefaultSerializer.Serialize();
            var expected   = $"\"{dic.GetType().Name}.{dic.GetHashCode()}\" + (\"[0].{key1}\" + \"Key.{dic.Keys.ElementAt(0).GetHashCode()}\" + \"Value.{dic.Values.ElementAt(0).GetHashCode()}\") + (\"[1].{key2}\" + \"Key.{dic.Keys.ElementAt(1).GetHashCode()}\" + \"Value.{dic.Values.ElementAt(1).GetHashCode()}\") + (\"[2].{key3}\" + \"Key.{dic.Keys.ElementAt(2).GetHashCode()}\" + \"Value.{dic.Values.ElementAt(2).GetHashCode()}\") + \"Comparer.{dic.Comparer.GetHashCode()}\" + \"Count: 3\"";

            Assert.Equal(12, expression.Count);
            Assert.IsType <ComplexEntity>(expression[0]);
            Assert.IsType <CollectionItemEntity>(expression[1]);
            Assert.IsType <PropertyEntity>(expression[2]);
            Assert.IsType <PropertyEntity>(expression[3]);
            Assert.IsType <CollectionItemEntity>(expression[4]);
            Assert.IsType <PropertyEntity>(expression[5]);
            Assert.IsType <PropertyEntity>(expression[6]);
            Assert.IsType <CollectionItemEntity>(expression[7]);
            Assert.IsType <PropertyEntity>(expression[8]);
            Assert.IsType <PropertyEntity>(expression[9]);
            Assert.IsType <PropertyEntity>(expression[10]);
            Assert.IsType <PropertyEntity>(expression[11]);
            Assert.Equal(expected, result);
        }
Esempio n. 10
0
        public void ChainConcat_ToString()
        {
            var leftA    = new[] { "a", "b", "c" };
            var rightA   = new[] { "c", "d" };
            var chainedA = leftA.ChainConcat(rightA);

            Assert.AreEqual(chainedA.GetType().ToString(), chainedA.ToString());
            var leftB    = new List <string>(leftA);
            var rightB   = new List <string>(rightA);
            var chainedB = leftB.ChainConcat(rightB);

            Assert.AreEqual(chainedB.GetType().ToString(), chainedB.ToString());
            var leftC    = new MyList1(leftA);
            var rightC   = new MyList1(rightA);
            var chainedC = leftC.ChainConcat(rightC);

            Assert.AreEqual("a,b,c,c,d", chainedC.ToString());
            var leftD    = new MyList2(leftA);
            var rightD   = new MyList2(rightA);
            var chainedD = leftD.ChainConcat(rightD);

            Assert.AreEqual("a, b, c, c, d", chainedD.ToString());
            var leftE    = new MyList3(leftA);
            var rightE   = new MyList3(rightA);
            var chainedE = leftE.ChainConcat(rightE);

            Assert.AreEqual("a|b|c,c|d", chainedE.ToString());
            var chainedF = leftA.ChainConcat(chainedD);

            Assert.AreEqual(chainedF.GetType().ToString(), chainedF.ToString());
            var chainedG = chainedD.ChainConcat(rightA);

            Assert.AreEqual(chainedG.GetType().ToString(), chainedG.ToString());
            var chainedH = chainedC.ChainConcat(chainedD);

            Assert.AreEqual("a,b,c,c,d, a, b, c, c, d", chainedH.ToString());
        }
Esempio n. 11
0
    static void Main(string[] args)
    {
        bool b;

        /////////
        // Arrays

        // NOT OK: always true
        b = args.Length >= 0;

        // NOT OK: always true
        b = 0 <= args.Length;

        // NOT OK: always false
        b = args.Length < 0;

        // NOT OK: always false
        b = 0 > args.Length;

        // OK: sometimes could be false
        b = args.Length > 0;

        // OK: sometimes could be false
        b = 0 < args.Length;

        // OK: sometimes could be true
        b = args.Length <= 0;

        // OK: sometimes could be true
        b = 0 >= args.Length;

        /////////
        // Containers
        var xs = new MyList2 <int>();
        var ys = new Stack <string>();

        // NOT OK
        b = xs.Count >= 0;
        b = 0 <= xs.Count;
        b = 0 <= ys.Count;

        b = xs.Count < 0;
        b = 0 > ys.Count;

        // OK
        b = xs.Count >= -1;

        // OK
        b = 0 < xs.Count;

        /////////
        // missed in java, but not here

        b = xs.Count >= (short)0;
        b = xs.Count >= (byte)0;

        /////////
        // missed cases

        // NOT OK
        b = xs.Count >= 0 + 0;
        b = xs.Count >= 0 - 0;

        b = args.LongLength >= 0L;

        /////////
        // Nested Containers
        var zs = new MyList <List <string> >();

        // NOT OK
        b = zs.Count >= 0;
        b = zs.Count < 0;

        // NOT OK
        b = zs[0].Count >= 0;

        // NOT OK
        b = zs[0][0].Length >= 0;

        /////////
        // Dictionaries
        var ws = new Dictionary <int, string>();

        // NOT OK: Always true
        b = ws.Count >= 0;

        // NOT OK: Always true
        b = 0 <= ws.Count;

        // OK: can be false
        b = ws.Count >= -1;

        // OK: can be false
        b = 0 < ws.Count;

        /////////
        // Non-generic containers/dictionaries

        var us = new System.Collections.Hashtable();
        var vs = new System.Collections.BitArray(1);

        // NOT OK: Always true
        b = us.Count >= 0;
        b = 0 > vs.Count;

        // NOT OK: Always true
        b = 0 <= us.Count;
        b = vs.Count < 0;

        // OK: can be false
        b = us.Count >= -1;
        b = vs.Count >= -1;

        // OK: can be false
        b = 0 < us.Count;
        b = 0 < vs.Count;
    }
Esempio n. 12
0
        public void ExecuteAddingElementsToList()
        {
            MyList2 myList2 = new MyList2();

            myList2.AddingElementsToList();
        }