定义引用类型用 class ,值类型 用 struct ,涉及数据转换就用 上一篇的方法做 ,涉及 泛型就用 in 关键字
不用 in
interface IContravariant<A> { } class Sample<A> : IContravariant<A> { } class Program { static void Test() { IContravariant<MyClass7> Istr = new Sample<MyClass7>(); IContravariant<MyClass8> Iint = new Sample<MyClass8>(); Iint = (IContravariant<MyClass8>)Istr; } public class MyClass7 {} public class MyClass8:MyClass7{} }
用 in
interface IContravariant<in A> { } class Sample<A> : IContravariant<A> { } class Program { static void Test() { IContravariant<MyClass7> Istr = new Sample<MyClass7>(); IContravariant<MyClass8> Iint = new Sample<MyClass8>(); Iint = Istr; } public class MyClass7 {} public class MyClass8:MyClass7{} }
in 关键字 参见:
http://msdn.microsoft.com/zh-cn/library/dd469484.aspx