在 Jesse Liberty 的 C# 编程(第 142 页)中,他提供了一个将对象转换为接口(interface)的示例。
interface IStorable
{
...
}
public class Document : IStorable
{
...
}
...
IStorable isDoc = (IStorable) doc;
...
这样做有什么意义,特别是如果对象的类无论如何都实现了接口(interface)?
EDIT1:澄清一下,我感兴趣的是强制转换的原因(如果有的话),不是实现接口(interface)的原因。此外,这本书是他的 2001 年第一版(基于 C#1,因此该示例可能与更高版本的 C# 不相关)。
EDIT2:我在代码中添加了一些上下文
最佳答案
因为您想限制自己只使用接口(interface)提供的方法。如果您使用该类,则可能会(无意中)调用不属于该接口(interface)的方法。
关于c# - 为什么要转换为接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619716/