c#面向东西5

时间:2022-02-16 06:14:53

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);