标签:style ring 比较 泛型类 重要 system ++ lin color
今天学习了一下C#里泛型的使用,在此方法中,首先用一个简单的数组,定义一个class Array来进行数组内,增加数字,查看数组内元素个数,更改某个索引下数组的某个元素。
在此我们发现,如果想进行其他类型的数组的操作,我们需要使用最强大的CV大法进行复制粘贴,使得代码的重用性降低,所以在此,泛型的引入十分重要,泛型的学习心得及解释代码如下:
泛型
1 using System; 2 //泛型 3 namespace GenericTypeDemo 4 { 5 //使用泛型 6 //数组类 Array 7 //泛型类--需要在类名后加上泛型类型 8 //定义的时候需要用 T 泛型类型表示任意一种类型 9 //1. 使用泛型能够提高代码重用 10 11 //2. 使用泛型时,由于类型不确定,所以我们不能使用算术运算符 12 //public class Math<T> 13 //{ 14 // public T Max(T num1, T num2) 15 // { 16 // return num1 > num2 ? num1 : num2; 17 // } 18 //} 19 20 //T - type 21 //S/U/V - 第二、三、四种类型 22 //K/V - key/value 23 //N - number 24 public class Array<T/*,S,U,V*/> 25 { 26 //索引器 27 public T this[int index] 28 { 29 set { _arr[index] = value; } 30 get { return _arr[index]; } 31 } 32 33 public int Count 34 { 35 get { return _count; } 36 } 37 38 public void Add(T value) 39 { 40 _arr[_count] = value; 41 _count++; 42 } 43 44 public void Log() 45 { 46 string str = "当前数组中包含 " + Count + " 个元素:("; 47 for (int i = 0; i < Count; i++) 48 { 49 str += _arr[i]; 50 if (i < Count - 1) 51 { 52 str += ", "; 53 } 54 } 55 str += ")"; 56 Console.WriteLine(str); 57 } 58 public Array() 59 { 60 _arr = new T[100]; 61 } 62 private T[] _arr; 63 private int _count = 0; //保存当前数组里的元素个数 64 } 65 66 #region 67 /* 68 //数组类 Array 69 public class Array 70 { 71 //索引器 72 public int this[int index] 73 { 74 set { _arr[index] = value; } 75 get { return _arr[index]; } 76 } 77 78 public int Count 79 { 80 get { return _count; } 81 } 82 83 public void Add(int value) 84 { 85 _arr[_count] = value; 86 _count++; 87 } 88 89 public void Log() 90 { 91 string str = "当前数组中包含 " + Count + " 个元素:("; 92 for (int i = 0; i < Count; i++) 93 { 94 str += _arr[i]; 95 if (i < Count - 1) 96 { 97 str += ", "; 98 } 99 } 100 str += ")"; 101 Console.WriteLine(str); 102 } 103 public Array() 104 { 105 _arr = new int[100]; 106 } 107 private int[] _arr; 108 private int _count = 0; //保存当前数组里的元素个数 109 }*/ 110 #endregion 111 112 class Program 113 { 114 static void Main(string[] args) 115 { 116 //当具体使用的时候,才需要确定作用的类型 117 //Array<int> arr = new Array<int>(); 118 Array<float> arr = new Array<float>(); 119 arr.Log(); 120 121 arr.Add(23.5f); 122 arr.Log(); 123 124 arr.Add(432.332f); 125 arr.Log(); 126 127 arr[1] = 12.55f; 128 arr.Log(); 129 130 #region 131 //Array arr = new Array(); 132 //arr.Log(); 133 134 //arr.Add(13); 135 //arr.Log(); 136 137 //arr.Add(97); 138 //arr.Log(); 139 140 //arr.Add(32); 141 //arr.Log(); 142 143 //arr[0] = 25; 144 //arr.Log(); 145 //Console.WriteLine("arr[1]= " + arr[1]); 146 #endregion 147 148 //int[] arr = new int[3]; 149 //arr[0] = 1; 150 //arr[1] = 2; 151 //arr[2] = 3; 152 //Console.WriteLine(arr.Length); 153 } 154 } 155 }
标签:style ring 比较 泛型类 重要 system ++ lin color
原文地址:http://www.cnblogs.com/stardream19/p/7241748.html