public void Run() { MyRandom r = new MyRandom(); num = r.CRandom(); num2 = r.CRandom(); if (flag) { int a = 10; int b = 20; Console.WriteLine("--------------FindMax--------------"); Console.WriteLine("Num1 is: {0}, Num2 is: {1} Max is: {2}", num, num2, GetMax(num, num2)); Console.WriteLine("--------------Recursive--------------"); tmp = r.CRandom(2, 6); Console.WriteLine("{0} 阶乘(5*4*3*2*1): {1}", tmp, Recursive(tmp)); Console.WriteLine("--------------RecursiveZero--------------"); tmp = r.CRandom(2, 5); Console.WriteLine("{0} Recursive: ", tmp); RecursiveZero(tmp); Console.WriteLine("--------------ValuesPass--------------"); a = 10; b = 20; // Before: a is 10 and b is 20 Console.WriteLine("Before: a is {0} and b is {1}", a, b); ValuesPass(a, b); // After: a is 10 and b is 20 Console.WriteLine("After: a is {0} and b is {1}", a, b); Console.WriteLine("--------------RefPass--------------"); a = 10; b = 20; // Before: a is 10 and b is 20 Console.WriteLine("Before: a is {0} and b is {1}", a, b); RefPass(ref a, ref b); // After: a is 20 and b is 10 Console.WriteLine("After: a is {0} and b is {1}", a, b); Console.WriteLine("--------------OutPass--------------"); a = 10; // Before: a is 10 Console.WriteLine("Before: a is {0}", a); OutPass(out a); // After: a is 99 Console.WriteLine("After: a is {0}", a); Console.ReadKey(); } }
/* 动态数组(ArrayList) 代表了可被单独索引的对象的有序集合。*/ public void MyArrayList(int len) { ArrayList al = new ArrayList(); /* 属性 */ // Capacity 获取或设置 ArrayList 可以包含的元素个数。 // Count 获取 ArrayList 中实际包含的元素个数。 // IsFixedSize 获取一个值,表示 ArrayList 是否具有固定大小。 // IsReadOnly 获取一个值,表示 ArrayList 是否只读。 // Item 获取或设置指定索引处的元素。 /* 方法 */ // Add( object value ); 在 ArrayList 的末尾添加一个对象。 Console.WriteLine("---Add---"); for (int i = 0; i < len; i++) { al.Add(rd.CRandom(0, 100)); Console.Write(al[i] + " "); } Console.WriteLine("\n---Capacity---" + al.Capacity); // 16 Console.WriteLine("---Count---" + al.Count); // 10 // AddRange( ICollection c ); 在 ArrayList 的末尾添加 ICollection 的元素。 // Contains( object item ); 判断某个元素是否在 ArrayList 中。 Console.WriteLine("---Contains---"); Console.WriteLine("50 {0} in al.", (al.Contains(50) ? "has" : "does not")); // GetRange( int index, int count ); 返回一个 ArrayList,表示源 ArrayList 中元素的子集。 // IndexOf(object); 返回某个值在 ArrayList 中第一次出现的索引,索引从零开始。 // Insert( int index, object value ); 在 ArrayList 的指定索引处,插入一个元素。 // InsertRange( int index, ICollection c ); 在 ArrayList 的指定索引处,插入某个集合的元素。 // Remove( object obj ); 从 ArrayList 中移除第一次出现的指定对象。 // RemoveAt( int index ); 移除 ArrayList 的指定索引处的元素。 // RemoveRange( int index, int count ); 从 ArrayList 中移除某个范围的元素。 // Reverse(); 逆转 ArrayList 中元素的顺序。 Console.WriteLine("---Reverse---"); al.Reverse(); for (int i = 0; i < al.Count; i++) { Console.Write(al[i] + " "); } // SetRange( int index, ICollection c ); 复制某个集合的元素到 ArrayList 中某个范围的元素上。 // Sort(); 对 ArrayList 中的元素进行排序。 Console.WriteLine("\n---Sort---"); al.Sort(); for (int i = 0; i < al.Count; i++) { Console.Write(al[i] + " "); } // TrimToSize(); 设置容量为 ArrayList 中元素的实际个数。 // Clear(); 从 ArrayList 中移除所有的元素。 Console.WriteLine("\n---Clear---"); al.Clear(); for (int i = 0; i < al.Count; i++) { Console.Write(al[i] + " "); } }