c# – 类型参数约束是一个类
发布时间:2020-12-16 00:03:21 所属栏目:百科 来源:网络整理
导读:我注意到其他开发人员使用这种技术,但它总是让我困惑.我今天早上决定进行调查,并在MSDN上发现了以下内容(从 http://msdn.microsoft.com/en-us/library/d5x73970(v=vs.100).aspx开始): public class GenericListT where T : Employee{...} 为什么我们要使用
我注意到其他开发人员使用这种技术,但它总是让我困惑.我今天早上决定进行调查,并在MSDN上发现了以下内容(从
http://msdn.microsoft.com/en-us/library/d5x73970(v=vs.100).aspx开始):
public class GenericList<T> where T : Employee { ... } 为什么我们要使用此方法而不是在类中用Employee替换T的所有实例?对我来说,这似乎是可维护性的胜利.我可以理解限制接口作为包含来自不同继承层次结构的类的方法,但是继承已经以更明显的方式解决了上面的问题,不是吗? 这可能被视为一个错误,或者“修复”这样的代码是错误的吗? 解决方法
因为它可能是从Employee派生的东西.
public class EvilEmployee : Employee { public Int32 Evilness { get; set; } } 现在可以…… GenericList<EvilEmployee> list = GetEvilEmployees(); var mostEvilEmployee = list.OrderByDescending(e => e.Evilness).First(); 因为在编译时我们知道T = EvilEmployee并且EvilEmployee具有Evilness属性,所以这是可能的.如果我们要将列表强制转换为不可能的Employee列表(不使用OfType). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |