委托中的协变与逆变
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
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
相关文章推荐
- C#委托及其有趣的协变、逆变
- <转>C# 4.0 为泛型编程引入了 协变 和 逆变 支持,这是个不错的福利,能省掉以往的一些麻烦。不过当前(Beta2)仅支持泛型接口和泛型委托。
- c#4.0——泛型委托的协变、逆变
- 委托中的协变和逆变(C# 编程指南)
- .Net 2.0 新功能:委托中的协变与逆变(Covariance and Contravariance in Delegates)
- 委托的匿名方法,以及在协变与逆变中的应用
- 委托的协变与逆变的应用
- 委托的协变与逆变
- C#中委托的匿名方法,及其在协变与逆变中的应用
- C# 委托之协变和逆变
- 委托的协变与逆变代码
- 委托中的协变和逆变(C# 编程指南)
- C# 语言特性系列(1) 委托 - 协变和逆变
- 委托中的协变和逆变(C# 编程指南)
- C#深入学习:泛型修饰符in,out、逆变委托类型和协变委托类型
- [译]委托和接口泛型参数类型的协变和逆变
- c# 委托 协变和逆变
- 我来分析委托的协变与逆变
- 随谈.net 2.0中委托的协变和逆变特性
- .Net 2.0 新功能:委托中的协变与逆变(Covariance and Contravariance in Delegates)