问题标签 [object-initializers]

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 回答
28850 浏览

c - 如何在 C(不是 C++)中重新初始化数组?

如何在 C 中重新初始化数组?

我应该通过指针定义它:int *data[]还是我可以只编码:int data[] = {};

例如,我将其定义为:

现在,如何重新初始化数组data

0 投票
2 回答
1092 浏览

.net - 在工厂模式中使用 VB.NET 对象初始值设定项

我已经编写了一个基类,我希望从中派生几个子类(在本例中为 Windows 窗体类),并且我使用工厂模式来维护子实例的集合,因此表单只能具有每个主键值一个实例(类似于工厂模式和单例模式的混搭。)

我在基本表单类中使用以下代码:

这个想法是创建一个从基本表单继承的子表单(例如,称为 UserInfoForm),并为用户 #42 创建一个实例,如下所示:

所有这些都按预期工作。

但是,UserInfoForm 现在有一些我希望设置的属性,我想使用 Object Initializers 设置它们,而不是在工厂创建表单之后,如下所示:

有没有办法结合这两种方法,所以我有工厂和初始化程序?

我不是在寻找:

...因为基类还有一个 ShowForm() 方法,该方法采用额外的基本表单参数,包装 GetForm() 函数并显示表单。

0 投票
3 回答
266 浏览

c++ - 在结构数组中初始化结构数组

给定以下代码:

我正在尝试初始化一个 TestData 数组,其中我还初始化了一个 BufferPair 数组。每个 TestData 实例都有一个不同大小的 BufferPair 数组。简化示例:

尝试此操作时,我收到以下 gcc 错误:

我将如何解决这个问题?谢谢。

0 投票
2 回答
388 浏览

c++ - 非静态全局对象与指向动态对象的全局指针

出现以下无法解释的行为:

情况1:

a.cpp编译为 .dll 库并在 main() 中使用main.cpp

据我了解,这种方法可能会由于全局变量的未定义初始化行为而失败。

案例二:

a.cpp编译为 .dll 库并在 main() 中使用main.cpp

这一次它起作用了,当使用动态分配时。

案例3(最令人惊讶)

a.cpp编译为 .dll 库并在 main() 中使用main.cpp

与可能未定义 Bar obj 实例化的情况 1 相反,在情况 3 中,它是“根据请求”使用的。然而,案例 3 提供了与案例 1 相同的行为。

我的问题是……谁能解释这里发生了什么?一切都是用 VC2008 发布模式构建的(这个项目没有调试模式选项)

0 投票
5 回答
124 浏览

c# - 避免重复对象初始值设定项值

我的项目中有许多对象,它们的字段在初始化时将包含匹配的值- 请参阅下面的代码片段以获取示例,特别是AddedDateTimeandModifiedDateTime属性:

设置后是否可以在 {...} 块内将的值设置ModifiedDateTime为 的值?AddedDateTime

我觉得这是不可能的,但认为值得要求确认。

0 投票
3 回答
653 浏览

c# - C#如何在匿名对象初始化时设置只读属性

在 C# 中,对象初始值设定项可以设置公共的非只读字段和属性。

但是,对于匿名类型,属性是只读的。那么.NET 是如何在对象初始化时设置它们的呢?

0 投票
2 回答
6077 浏览

c# - 使用对象初始化器设置私有 setter

当从拥有 auto 属性的类中调用初始化器时,为什么可以使用对象初始化器来设置私有 set auto 属性?我以两个类为例。

0 投票
3 回答
314 浏览

c# - 如何在 C# 成员初始化程序中引用另一个属性值?

在 VB 中,以下是一个有效的对象初始化程序,其中一个成员初始化程序引用了之前已初始化的另一个成员的值。

new MyObject() with {.Property1="x", .Property2 = .Property1 + "y"}

如果我尝试在C#使用时做同样的事情

我得到错误

当前上下文中不存在名称“Property1”。

这有点令人惊讶,因为这两种语言之间存在相当多的平等,但也许这是少数几个差异之一。

有没有办法做到这一点C#?对于那些想知道具体用例可能是什么的人,我正在使用一个相当复杂的 LINQ 查询构造一个复合对象结构。

在此要解决的真正问题是对用于将值分配给 SelectedAnswerId 和 SelectedAnswerIds 的 LINQ 表达式中的 Answers 属性的引用。我可能不得不将这两个表达式分解为它们自己的独立分配。

0 投票
1 回答
106 浏览

c# - c#中的对象重新初始化

在 c# 中重用对象是否被认为是“好习惯”。
例如:
      假设您有一个名为 Anima 的类,并创建一个名为 Monkey 的动物类型对象:

0 投票
3 回答
2879 浏览

c# - 从对象初始化器访问属性

我有以下Person课程

我可以像这样初始化它:

但是是否可以Person在对象初始化程序中引用另一个属性,所以我可以做这样的事情?

编辑

就问题而言,引用的属性不必根据其他属性计算,但可以在构造函数中设置其值。

谢谢