- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在实现一个具有成员 IEnumerable<BaseClass> Member
的接口(interface).但我想在每个 BaseClass
中存储一些额外的信息项,为此我创建了一个派生类。这是我希望能够做的:
interface IImplementMe
{
IEnumerable<BaseClass> Member { get; }
}
class DerivedClass : BaseClass
{
// Some extra stuff here
}
class Implementation : IImplementMe
{
IEnumerable<DerivedClass> Member { get; }
}
我认为没有办法做到这一点(如果有请告诉我!)。 Member
中可能有重复项列表,所以我不能使用字典来存储额外的东西。实现这一目标的标准、优雅的方法是什么?
最佳答案
您可以为此使用显式接口(interface)实现。
class Implementation : IImplementMe
{
public IEnumerable<DerivedClass> Member;
IEnumerable<BaseClass> IImplementMe.Member { get { return Member; } }
}
关于c# - 使用 IEnumerable<DerivedClass> 实现接口(interface)的 IEnumerable<BaseClass>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23237793/
我有很多类都继承自一个基类——实际上它只是一个允许序列化的接口(interface)包装器: public abstract class VoucherRuleBase : IRule{ pu
我是 C# 的新手,我正在开发一个 rpg 游戏引擎。 我有我的基类 Item,它是 Weapon 和 Armour 的父类,武器和盔甲类有额外的变量,用于统计、武器插槽、盔甲类型等。 我的 Play
在使用新语言进行个人项目时,我遇到了一个烦人的编译时错误,我的 constants.h(常量类)的静态成员找不到类名(Quark,它是派生的Particle 类,这两个在同一个文件“Particle.
我无法从 BaseClass 隐式转换到它的DerivedClass .我有以下代码: class BaseClass { } class DerivedClass : BaseClass {
我正在尝试使用工厂方法返回派生类,但返回类型是基类类型。根据我的理解,我认为继承可以让我这样做,显然我错了。 WeightExercise 和 CardioExercise 均派生自 Exercise
我刚刚了解到将泛型参数作为 out 的类型参数强制该泛型类型保持不变。这让我很惊讶。我以为out参数被视为与返回类型相同(即如果泛型参数是协变的,那么它可以用作 out 输出参数),因为它们都是方法的
我遇到段错误但不知道为什么。使用std::unique_ptr(&DerivedClassObj)有问题吗?谢谢。 这是代码 # test.cc #include #include #includ
我尝试了下面的代码,并得到了一个编译错误。 class A {}; class B : public A {}; void f(A*& p) {} int main() { B* pB;
我有这样的基类: public class Scene { public IList Models {get; set;} } public class SceneModel { } 和像这样
我如何传递一个列表,该列表是一个 DerivedObjects 列表,其中方法需要一个 BaseObjects 列表。我正在转换列表 .ToList()并且想知道是否有更好的方法。我的第二个问题是语法
给定以下类定义: public class BaseClass { public string SomeProp1 { get; set; } } public class DerivedCl
我正在尝试传递 DerivedClass 的列表到接受 BaseClass 列表的函数,但我收到错误: cannot convert from 'System.Collections.Generic.
虽然我们可以从基类/接口(interface)继承,为什么我们不能声明一个List<>使用相同的类/接口(interface)? interface A { } class B : A { } cla
从下面的代码 sizeof(Base) == 24 和 sizeof(Derived) == 24。 为什么它们的大小相等? 在 Base 类中我们有 3 个成员,在 Derived 类中我们有另一个
我有一个包含此方法的通用存储库: public void Delete(T item) where T : EntityBase 我正在尝试为某些对象添加软删除行为; IE。删除时,它们不会从数据库中
我需要摆脱这个警告。据我了解,这似乎是因为 DerivedClass 不被视为普通旧数据。我读了关于 POD 的 cppreference和 Standard Layout Type但我仍然不明白为什
我对这个错误有疑问,添加默认构造函数并不能修复它。没有默认构造函数编译会产生错误,使用默认构造函数编译会产生错误。我已经在网上搜索了几个小时,但一无所获。这是我的代码的一个简单示例(实际代码相当长):
我几乎可以肯定我想做的事情有一个合适的术语,但由于我不熟悉它,我将尝试明确地描述整个想法。所以我拥有的是一组类,它们都继承自一个基类。所有类几乎完全由不同的方法组成,这些方法仅在每个类中相关。然而,有
我理解派生类的List<>不能直接赋值给基类的List<>。但是它如何允许将派生类的相同 List<> 分配给 IEnumerable<> 类型的基类参数。 public class Base {}
我有一个构造函数试图初始化基类中的一个字段。编译器提示。该字段 protected ,因此派生类应该具有访问权限。 //The base class: class BaseClass { public
我是一名优秀的程序员,十分优秀!