您的位置:首页 > 其它

委托中的协变与逆变

2008-07-23 15:34 274 查看
using System;
using System.Text;
#region
class teach
{
public static teach print_t()
{
Console.WriteLine("Teach class");
return null;

}
}
class student : teach
{
public static student print_s()
{
Console.WriteLine("student class");
return null;
}

}

class TestClass
{
delegate void S_Del(student tec);
delegate teach T_Del();

public static void print(teach tec)
{
Console.WriteLine("逆变 student class");

}
public static void fun(student stu)
{
Console.WriteLine("逆变");
}

static void Main(string [] args)
{

//协变
T_Del del_t = student.print_s;
del_t();
del_t = teach.print_t;
del_t();

//逆变
S_Del del_s = print;
student stu = new student();
del_s(stu); //////调用的时print函数
del_s = fun;
del_s(stu);//////调用fun函数

Console.Read();

}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: