问题标签 [multiple-constructors]

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.

0 投票
3 回答
994 浏览

c# - C# 字符串插入与可选参数混淆

我对 C# 相当陌生,并试图找出字符串插入(即"some {0} string", toInsert),并遇到了一个我没想到的问题......

如果您有两个构造函数:

我可以使用带有字符串插入的第一个构造函数吗?

还是 C# 会将其解释为第二个构造函数并将文字"abc{0}ghi"作为第一个参数传递?

0 投票
25 回答
217693 浏览

php - 在 PHP 中执行多个构造函数的最佳方法

您不能在 PHP 类中放置两个具有唯一参数签名的 __construct 函数。我想这样做:

在 PHP 中执行此操作的最佳方法是什么?

0 投票
2 回答
5682 浏览

php - 从 PHP 中的构造函数调用另一个构造函数

我想要在 PHP 类中定义一些构造函数。但是,我的构造函数代码目前非常相似。如果可能的话,我宁愿不重复代码。有没有办法从 php 类的一个构造函数中调用其他构造函数?有没有办法在 PHP 类中有多个构造函数?

我知道我可以通过创建一些 Init 方法来解决这个问题。但是有没有办法解决这个问题?

0 投票
3 回答
1691 浏览

java - 哪种 Java 编程实践更好:堆叠枚举和枚举构造函数,还是子类化?

给定有限数量的种类不同的项目,是用堆叠的枚举和枚举构造函数来表示它们,还是对它们进行子类化更好?还是有更好的方法?

为了给你一些背景信息,在我的小型 RPG 程序中(讽刺的是,这应该很简单),一个角色在他或她的库存中有不同种类的物品。物品因种类、用途和效果而异。

例如,一个物品栏是一个名为 Gremlin 的法术卷轴,它可以调整实用属性。另一件物品可能是一把名为 Mort 的剑,用于战斗并造成伤害。

在我的 RPG 代码中,我现在尝试了两种表示库存项目的方法。一种方法是子类化(例如,InventoryItem -> Spell -> AdjustingAttributes;InventoryItem -> Weapon -> Sword)并在需要时实例化每个子类,并分配诸如 Gremlin 和 Mort 之类的名称之类的值。

另一种方法是堆叠枚举和枚举构造函数。例如,我为 itemCategory 和 itemSpellTypes 和 itemWeaponTypes 创建了枚举,而 InventoryItem 枚举是这样的:

有没有比这两种方法更好的 Java 编程实践?或者如果这些是唯一的方法,那么两者中哪一个更好?提前感谢您的建议。

0 投票
3 回答
1816 浏览

c# - C# - 添加到现有(生成的)构造函数

我有一个生成代码中的构造函数。我不想更改生成的代码(因为重新生成时它会被覆盖),但我需要向构造函数添加一些功能。

这是一些示例代码:

我能想出的唯一解决方案是:

我相当确定这会起作用,但是我的构造函数有一个蹩脚的未使用参数,我必须全部更改它们。有没有更好的办法?如果不是那很好,但我想我会问。

0 投票
2 回答
14045 浏览

c# - 具有多个构造函数的 MEF 构造函数参数

我开始使用 MEF,并且我有一个具有多个构造函数的类,如下所示:

catalog.ComposeExportedValue()在编写时使用将par1 值提供给第二个构造函数:

保存我正在使用的组件:

为了创建foo我使用 value 属性的实例,FooList[0].Value.

一切工作正常,除了类的第二个构造函数foo从未被调用。怎么了?

当 MEF 实例化类时,如何选择要使用的构造函数?

0 投票
4 回答
10500 浏览

java - 在 Scala 中,如何子类化具有多个构造函数的 Java 类?

假设我有一个带有多个构造函数的 Java 类:

如何在 Scala 中扩展它并仍然提供对 Base 的所有三个构造函数的访问?在 Scala 中,子类只能调用它的超类的构造函数之一。我该如何解决这个规则?

假设 Java 类是我无法更改的遗留代码。

0 投票
1 回答
2926 浏览

unity-container - Unity 和构造函数

是否可以统一尝试所有已定义的构造函数,从参数最多的构造函数到最不具体的构造函数(默认构造函数)?

编辑

我的意思是说:

我不希望 Unity 只尝试使用大多数参数的构造函数。我希望它继续尝试,直到找到合适的构造函数。如果 Unity 默认不提供这种行为,是否可以创建扩展或其他东西来做到这一点?

编辑 2

我有一个有两个构造函数的类:

该类存在于多个项目使用的库中。在这个项目中,我想使用第二个构造函数。但是 Unity 停止了,因为它无法满足第一个构造函数的依赖关系。而且我不想更改类,因为 DI 在其他项目中使用了第一个构造函数。

因此,Unity 需要尝试解析所有构造函数。

0 投票
2 回答
7321 浏览

c++ - 类构造函数中 boost::shared_ptr 的默认值

假设我有课

我的问题是,该 ptr 的默认值是什么?我希望能够使用创建该类的实例

当然我知道我可以只用一个参数创建另一个构造函数,但我正在寻找类似的东西

是否可以?目前我正在使用两个构造函数的方式,但这样做会很棒。

0 投票
5 回答
2010 浏览

.net - C# 中的 this() 和 base() 构造函数

似乎没有指定 this() 和 base() 构造函数的语言语法。给定以下代码:

编译器给我一个错误,指出在取消注释 :this(0) 调用时需要“{”。这很麻烦,因为当明确提供此功能以防止此类事情发生时,它会导致我将我的代码分解为私有方法。

我只是做错了吗?我试过没有分隔符,分号,逗号......这似乎只是开发团队的疏忽。我对为什么省略这个很感兴趣,如果我以错误的方式处理这个问题,或者是否有人对替代方案有很好的建议。