c# - 为什么要转换为接口(interface)?

标签 c# interface casting

在 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/

相关文章:

c# - 如何将歌曲的持续时间格式化为分钟和秒?

c# - 使用 LINQ 比较列表并返回常见对象

java - 标记注释与标记接口(interface)

java - 接口(interface)的所有方法都是抽象的吗?

字符指针类型之间的转换

linq - 类型转换和Linq Cast <T>()

c# - 如何将任意对象转换为枚举?

c# - 绑定(bind)到用户控件 WPF/XAML 的依赖属性

java - 接口(interface)及其使用

java - 从 JSONObject 转换非原始 Double