前段时间我读过OOP的"约定",但我不确定我是否记得正确.
它说一个方法必须将继承层次结构中最通用的对象作为参数,而返回最后代的对象.
这是真的,如果是的话,任何人都可以解释一下吗?
例:
IList<T> someMethod(IList<T> someList)
{
IList<T> resultList = new List<T>();
... do something with resultList ...
return resultList;
}
Run Code Online (Sandbox Code Playgroud)
根据'约定',上面的方法应该返回List而不是IList?
通常情况下,类声明了一个指向对象的泛型指针.通常是基类.在运行时,通过构造函数或setter方法注入更具体的类,该方法允许扩展代码而不进行修改.这是软件工程中的圣杯.有一条规则说基类应该可以用它们的派生类替换--Liskov替换原则.我不确定你的例子似乎没有使用someList参数.