c#面向对象5

2021-02-18 23:18

阅读:597

1.泛型范围更宅,更好。

2.readonly是只读的意思,表示不能进行写操作.

3.return Default(T)default(T) 在泛型编成中如果不限制T类型参数是值类型或引用类型的话 你程序内部可能会出现错误,
因为值类型不允许NULL.所以default用来获取一个类型的默认值,对于值类型得到new T() 基本得到的都是0;
对于引用类型会得到Null
或者你不使用Default关键词,自己通过反射得到T是指类型还是引用类型 然后设置默认值.

4. public class Cage {
    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              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 (1);
dogCage.Putin (new Dog ("A"));
dogCage.Putin (new Dog ("B"));
var dog = dogCage.TakeOut ();
dog.PrintName ();

 

5.泛型方法

void DogIsHappy(T target){

}

 

    public void IsHappy(T target){
        Debug.Log ("happY:" + target.ToString ());
    }
    var dog = new Dog ("a");
    dog.IsHappy (3);


评论


亲,登录后才可以留言!