问题标签 [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# - 何时使用多个类库?
什么时候应该在 .NET 中使用多个类库。我有一种情况,我需要使用 Microsoft Office 对象模型的功能来检查 Microsoft Office 文件的某些属性。我应该使用不同的类库来处理不同的文件类型。
或者我应该把所有东西都塞进一个类库中。
在构建多个类库之前我应该问自己什么问题。
php - 阻止直接绕过工厂创建类的可能性
在我们 MVC 系统中所有模型的基类中,我创建了一个工厂方法 BaseCLass::getNew(),它在通过 SomeChildClass::getNew() 调用时返回所请求子类的实例。
现在,我正在寻找一种方法来强制程序员使用这个工厂。即,我通常希望直接创建任何类,如下所示:
创建时会抛出异常,只有工厂创建的类才能使用。
任何想法如何实现?
我们的代码是用 PHP 编写的,但即使您使用不同的语言思考,您的想法也很有可能是有价值的。
编辑:我不能将我的构造函数设为私有,因为我继承的类中的框架构造函数是公共的,而 php 不允许我这样做。
c++ - 模板方法覆盖非模板方法
我想将任何类型的对象(对象、对象等)放入一个 shared_ptr 中。所以我创建了基类并使用了 shared_ptr。
但是,我该如何声明
在基类中,所以我可以调用 ObjectBase.getMember?
function - 在派生类的函数中调用基类构造函数
我试图在派生类的函数中调用基类的构造函数。这是代码:
课程:
现在在派生类的复制构造函数中,我尝试使用以下方法调用基类的复制构造函数:
要实现这一点,请告诉我语法。
c++ - 需要从 C++ 中的派生类调用基本析构函数方法?
请考虑以下
当派生对象被析构并且派生类没有定义析构函数时,是否会自动调用基类析构函数?
否则,如果派生类中也有析构函数,是否也需要显式调用基类析构函数?
inheritance - Entity Framework 4.1 Code First:获取具有特定基类的所有实体
我有一个 DbContext 设置了不同DbSet<T>
的 s,所有类型都派生自同一个基类:
是否可以在一个查询中获取所有具有Entity
基类的实体,例如:
我尝试向 DbContext 引入显式DbSet<Entity>
,但这会为数据库中的所有实体生成一个大表。
附加问题:如果这以某种方式起作用,那么查询接口呢?
编辑:
我按照 Ladislav Mrnka链接上的说明进行了如下映射:
现在抛出错误
属性“Id”不是“Foo”类型的声明属性。使用 Ignore 方法或 NotMappedAttribute 数据注释验证该属性是否已从模型中显式排除。确保它是有效的原始属性。
我还尝试将 Key 显式设置为Id
属性:
我错过了什么?
c# - 在 .NET 中,您可以使用反射来获取类的所有非继承方法吗?
由于这里的这个问题,我正在尝试编写一个自定义 JsonConverter 来处理您对列表或集合进行子类化的情况,然后向其添加额外的属性。因此,一种方法是忽略所有基类属性,只序列化定义类中的属性。(从技术上讲,这是行不通的,因为如果您将该子类子类化,则会破坏序列化,但这确实让我想知道......)
是否有可能通过反射(我知道答案是“是”,因为 Reflector 正是这样做的,但我不知道如何)只获取在类本身上定义的成员而不是继承的成员?例如...
在这种情况下,我想反思MySubClass
并且只得到SubProp1
andSubProp2
而忽略BaseProp1
and BaseProp2
。那怎么可能呢?
米
c# - 您可以扩展 JSON.NET 中用于集合的默认 JsonConverter 吗?
我正在尝试为一个人将列表或集合子类化但随后向子类添加额外属性的情况编写自定义 JsonConverter(请参阅此处)。JSON.NET 的当前实现只是将列表更改为子对象数组并忽略所有添加的属性。所以我想写一个新的 JsonConverter 来处理对象,就好像它不是一个 List 一样,只是像往常一样序列化其他所有东西,然后在序列化中添加一个名为“_Items”的新属性,其中实际的数据数组是存储。
现在,我已经为我们的特定 List 子类编写了一个完全执行此操作的类,但是我必须一个接一个地手动指定所有属性。但是,如果我可以编写一个将其视为普通对象的转换器,然后手动处理这些项目,我会很高兴。我什至不在乎我是否最终会复制另一个课程的一半(甚至更多!),但我很乐意为这些案例制作一个可重复使用的转换器。但是,正如我所说,我找不到默认转换器开始。
所以……有人知道那在哪里吗?
c# - 如何将覆盖的属性限制为只读
我有以下代码。
在基类中,该属性是读/写的。但在派生类中它是只读的,应该总是返回 100。虽然当我运行代码时,我发现它总是按预期返回 100。
但是,我不希望客户在 B 类中设置 BoardSize。所以它根本不应该允许客户端写b.BoardSize = 55
。
这怎么可能?
c# - 如何在基类上调用显式实现的接口方法
我有一种情况,两个类(一个从另一个派生)都显式地实现了相同的接口:
从派生类的实现中I.M()
,我想调用基类的实现,但我不知道该怎么做。到目前为止,我尝试的是这个(在 B 类中):
有没有办法做到这一点,而不必实现另一个(非接口显式)辅助方法?
更新:
我知道可以使用派生类调用的“帮助器”方法,例如:
我还可以更改它以非显式地实现接口。但我只是想知道如果没有任何这些解决方法是否有可能。