gpt4 book ai didi

oop - 向下转换(即转换为派生类型)总是错误的吗?

转载 作者:行者123 更新时间:2023-12-04 17:05:30 25 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




你对低头有什么看法?它总是错误的,还是在某些情况下可以接受,甚至更可取或需要?

是否有一些好的衡量标准/指南可以告诉我们什么时候低头是“邪恶的”,什么时候是“好的”/“好”?

(我知道 a similar question exists ,但这个问题是从一个具体案例中衍生出来的。我想从一般设计的角度回答它。)

最佳答案

不,这绝对不总是错的。

例如,假设在 C# 中您有一个事件处理程序 - 得到一个 sender参数,表示事件的发起者。现在您可以将该事件处理程序连接到多个按钮,但您知道它们始终是按钮。合理投senderButton在该代码中。

这只是一个例子——还有很多其他例子。有时它只是绕过一个有点尴尬的 API 的一种方法,有时它是由于无法在正常类型系统中干净地表达类型。例如,您可能有一个 Dictionary<Type, object>适当封装,使用通用方法添加和检索值 - 其中条目的值是键的类型。在这里转换是完全自然的——你可以看到它总是有效的,并且它为系统的其余部分提供了更多的类型安全。

关于oop - 向下转换(即转换为派生类型)总是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com