问题标签 [new-operator]

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 投票
4 回答
155 浏览

.net - 我可以更改在 .NET 中解析和实例化类型的方式吗?

在某些语言中,您可以覆盖“new”关键字来控制类型的实例化方式。您不能直接在 .NET 中执行此操作。但是,我想知道是否有一种方法可以处理“找不到类型”异常并在“新建”该类型的人爆炸之前手动解析类型?

我正在使用一个序列化程序,它读取基于 xml 的文件并实例化其中描述的类型。我对序列化程序没有任何控制权,但我想与该过程进行交互,希望无需编写我自己的 appdomain 主机。

请不要建议替代序列化方法。

0 投票
20 回答
319065 浏览

c++ - 在什么情况下我使用 malloc 和/或 new?

我在 C++ 中看到有多种分配和释放数据的方法,我知道当你调用时malloc你应该调用free,当你使用new操作符时你应该配对,delete将两者混合是错误的(例如调用free()创建的东西与new操作员),但我不清楚何时应该在我的现实世界的程序中使用malloc/free以及何时应该使用new/ 。delete

如果您是 C++ 专家,请告诉我您在这方面遵循的任何经验法则或约定。

0 投票
25 回答
195160 浏览

c++ - “安置新”有什么用?

这里有人用过 C++ 的“placement new”吗?如果有,是为了什么?在我看来,它只对内存映射硬件有用。

0 投票
6 回答
3926 浏览

c++ - 在 C++ 中测试“new”的返回是否有用?

我通常从来没有在 C++ 中看到过新的测试,我想知道为什么。

Foo *f = new Foo;

// f is assumed as allocated, why usually, nobody test the return of new?

0 投票
10 回答
638361 浏览

javascript - 使用 {} 或 new Object() 在 JavaScript 中创建一个空对象?

在 JavaScript 中创建空对象有两种不同的方法:

脚本引擎处理它们的方式有什么不同吗?有什么理由使用其中一个吗?

同样,也可以使用不同的语法创建一个空数组:

0 投票
5 回答
4842 浏览

c# - C# 使用新 []

我有一个关于使用的问题new[]

想象一下:

SomeProperty 需要一个字符串数组。

我知道这个代码片段会起作用。但我想知道它在幕后做了什么。是否new[]创建类的实例object并在SomeProperty其中自动将其转换为string对象?

谢谢

0 投票
5 回答
3938 浏览

new-operator - 对于有经验的 PHP 开发人员来说,什么是好的 GUI 编程语言?

我使用 PHP 已经有一段时间了,想学习一些基于 Windows 桌面的 GUI 应用程序。类似于 C# 或 Visual Basic 的东西会很好,但是我想学习一种开放的语言,类似于 PHP。

请不要建议任何需要昂贵编译器或不允许您创建独立应用程序的编译器。

0 投票
12 回答
6001 浏览

c++ - C++ 构造“placement new”的用途是什么?

我刚刚了解了名为“placement new”的 C++ 构造。它允许您精确控制指针在内存中指向的位置。它看起来像这样:

(来自C++ FAQ Lite的示例)

在此示例中,thisFred 的指针将等于place


我已经看到它在我们团队的代码中使用过一两次。根据您的经验,这种结构能带来什么?其他指针语言有类似的结构吗?对我来说,这似乎让人想起equivalenceFORTRAN,它允许不同的变量占据内存中的相同位置。

0 投票
9 回答
3633 浏览

c++ - 动态内存分配故障恢复

我正在研究嵌入式处理器(400 MHz Intel PXA255 XScale),我想我看到了一个没有足够内存来满足“新”操作的案例。程序没有崩溃,所以我认为其他线程已经释放了它们的内存,这只是暂时的。这是一些非常关键的代码,因此不能退出,并且需要将某种错误返回给远程用户。

以下小修复是否足以解决问题,还是有更好的方法?在用以下代码替换每个“新”之前,我想我会问。

睡眠有帮助吗?我应该设置一些最大重试次数吗?是否可以在任何地方使用静态初始化?

最后更新:非常感谢您提供的有用回复,但事实证明在检查内存分配失败的代码中存在错误。不过,我会牢记所有这些答案,并尽可能多地替换 malloc 和 new (尤其是在错误处理代码中)。

0 投票
3 回答
1438 浏览

c# - 检查 C# new() 初始化是否为空?

我在Koders上找到了这段代码:

我想知道,有没有什么可能的Debug.Assert(serviceProvider != null触发方式?我的印象是new只能被异常中止,在这种情况下永远不会达到断言。