问题标签 [base-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# - “投射”列表的简单方法列出?
我正在建立一个网站,其中包含三种主要类型的“在线新闻出版物”:Article
、BlogPost
和ColumnPost
. 在整个站点上,我有各种控件可以输出这些列表,混合在一起和未混合。因此,在许多控件上,我有一个文章列表,而在其他控件上,我可以有一个博客文章和专栏文章列表。在一些地方,我什至有文章、博客文章和专栏文章的列表。所以我围绕所有三个创建了一个包装类,称为Publication
. 我以前的类继承如下:
使用我的新Publication
包装器,它们看起来像:
现在我可以做这样的事情:
现在最重要的是,我使用 C# 中的中介者模式在许多可能需要重叠数据的竞争控件之间进行调解。我以前有一个,ArticleMediator
但现在我把它改成了一个PublicationMediator
。
我的问题:
从基类列表中检索派生类列表的最佳/最简单方法是什么?所以我的中介基本上接受 aList<Publication>
并返回 a List<Publication>
。如果我知道列表中的所有内容都是 a Article
,那么有什么简单的方法可以将其取回并将其转换为 a List<Article>
?现在我正在做以下这似乎是很多代码,但如果这是我应该做的,那我很好。我只是想知道是否有更简单的方法:
该PublicationList
属性是List<Publication>
中介已决定允许使用当前控件的返回值。我知道虽然我只想要 aList<Article>
所以我必须遍历Publication
列表中的每一个并确保它是 anArticle
然后我必须将它添加到实际的List<Article>
. 有没有更简单的方法来做到这一点?
我不想更改调解器以返回 aList<Article>
的原因是因为在某些地方我需要两者BlogPost
,ColumnPost
所以我实际上需要将我的转发器绑定到 aList<Publication>
并且在ItemDataBound
我可以看到当前项目是否为BlogPost
or ColumnPost
。
更新
我接受了接受的答案并将其作为扩展名:
c++ - 奇怪的错误 c2660“函数不接受 1 个参数”
我的基类有这个功能
当派生类调用该函数时
我收到错误 C2660:“函数不接受 1 个参数”。
这是为什么 ?
c# - 基类实现注意事项
我写了一个类来做某事,一段时间后我发现许多其他类共享该功能,因此决定实现一个基类(C# 中的抽象)并将所有共享放入其中。
既然无法实例化这样的类,那么如何调试呢?
开发基类是否有任何实际考虑?
c++ - C++:访问父方法和变量
我应该以哪种方式访问这个父方法和父变量?
谢谢。
编辑:如果有歧义怎么办?
c++ - C++:受保护的类构造函数
如果一个类总是要被继承,那么构造构造函数是否有意义protected
?
谢谢。
c++ - 基类 -> 派生类,反之亦然 C++ 中的转换
我有以下示例代码:
我无法编译它,G++ 会抛出一个错误:
我知道 C++ 大师的错误很明显,但我不明白为什么我不能从基类对象转换为派生对象。有人可以建议我解决我遇到的问题吗?谢谢你的建议
c++ - 如何重载和调用先前在其基类中定义的派生类中的方法?
这是基类:
这是派生类:
给定的错误是:
第 29 行:IntelliSense:不存在从“std::pair”到“long double”的合适转换函数
第 29 行:IntelliSense:函数调用中的参数太少
显然,问题是我无法从派生类访问基类中的方法,即使它是公共定义的。
如何使此代码工作?
(我的 IDE 是 Visual Studio 2010。)
c++ - c ++将基类转换为派生类混乱
如果我要创建一个名为的基类和名为的派生base
类等...我使用基类的实例集合,那么当我检索一个元素并尝试使用它时,我会发现 C++ 认为它的类型是基类的,可能是因为我从基类中检索到它。当我想使用仅存在于特定派生类的功能时,这是一个问题,当我将它放入向量时,我知道该对象的类型。derived_1
derived_2
std::vector
所以我将元素转换为它应该是的类型,发现这不起作用。
并记住这是一个指针。经过一些调整后,现在工作了。
这是正确的还是有一个abc_cast()
功能可以减少混乱?
编辑:
我不得不将其扩展到另一个问题,那里显示了完整的解决方案。stackoverflow.com ...为什么多态类型错误和清理问题
design-patterns - 接口 + 基类 - 这是什么模式?
我已经定义了一个由基类实现的接口。该基类提供基本功能。现在我有多个实现来实现基类并用更多细节扩展这些功能。当我调用这些多个实现时,我将实现转换为接口(在基类中实现)。
有没有描述这种类型的接口使用的模式?还是这种架构适得其反?
问候
c# - 继承问题。如何创建基类的多个实例?
我有一个基类(PrintProviderBase
)。它拥有一些状态(PrinterUnavailable
, NoPaper
, ...)。
然后我从这个类继承: ColorPrintProvider
, BlackAndWhitePrintProvider
...
我假设如果基类具有这样的属性:
然后每个子类(不同的打印提供者)都有自己的状态(尽管没有什么是静态的)。似乎base
该类的一个实例在它们之间共享,而我的意思是在每个子类中都有一个副本,base class
以便可以将通用功能和状态封装到base class
.
现在,如果打印提供商进入NoPaper
状态,其他提供商会由于状态不正确而停止打印。我怎样才能改变这种行为?