/// <summary> /// 2. 泛型內靜態成員共同使用 /// </summary> public void GenericStaticExample2() { Console.WriteLine(MyList2.WorkingMethod <int>()); Console.WriteLine(MyList2.WorkingMethod <string>()); Console.WriteLine(MyList2.WorkingMethod <int>()); //共用一個靜態變數 ,輸出為 1,2,3 }
public void Test() { MyList <int> l1 = new MyList2 <int>(); MyList <int> l2 = new MyDict <int, float>(); // Compilerfehler //MyList<int> l3 = new MyList<float>(); }
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); }
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); }
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(); }
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); } }
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); } }
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); }
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); }
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()); }
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; }
public void ExecuteAddingElementsToList() { MyList2 myList2 = new MyList2(); myList2.AddingElementsToList(); }