小编Pat*_*rik的帖子

Liskov替换原理和接口

ICollection<T>.Add()数组的实现是否违反Liskov替换原则?该方法导致a NotSupportedException,它确实打破了LSP,恕我直言.

string[] data = new string[] {"a"};
ICollection<string> dataCollection = data;
dataCollection.Add("b");
Run Code Online (Sandbox Code Playgroud)

这导致了

未处理的异常:System.NotSupportedException:Collection具有固定大小.

我找到了一个关于 - Stream实现的非常相似的问题.我打开一个单独的问题,因为这个案例非常不同:Liskov替换原则和Streams.这里的不同之处在于,ICollection它不像-class那样提供CanAdd-Property或类似的东西Stream.

c# liskov-substitution-principle interface

2
推荐指数
1
解决办法
706
查看次数