1.泛型范畴更宅,更好。
2.readonly是只读的意思,暗示不能进行写操纵.
3.return Default(T)default(T) 在泛型编成中如果不限制T类型参数是值类型或引用类型的话 你措施内部可能会呈现错误,
因为值类型不允许NULL.所以default用来获取一个类型的默认值,对付值类型得到new T() 根基得到的都是0;
对付引用类型会得到Null
或者你不使用Default关键词,本身通过反射得到T是指类型还是引用类型 然后设置默认值.
4. public class Cage <T>{
T[] array;
readonly int Size;
int num;//已经几只了
public Cage(int n){
Size = n;
num = 0;
array = new T[Size];
}
public void Putin(T pet){
if(num <Size){
array [num++] = pet;
}else{
Debug.Log("cage is full");
}
}
public T TakeOut(){
if(num>0){
return array [--num];
}else {
Debug.Log("cage is empty");
return default(T);
}
}
}
var dogCage = new Cage<Dog> (1);
dogCage.Putin (new Dog ("A"));
dogCage.Putin (new Dog ("B"));
var dog = dogCage.TakeOut ();
dog.PrintName ();
5.泛型要领
void DogIsHappy<T>(T target){
}
public void IsHappy<T>(T target){
Debug.Log ("happY:" + target.ToString ());
}
var dog = new Dog ("a");
dog.IsHappy<int> (3);