问题标签 [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.
c# - 对象初始化器中的双重赋值
我只是偶然发现了以下内容:
突然我无法调整控件的大小... IntelliSense 显示了问题:我把鼠标放在Height
上面,它表明该FrameworkElement.Height
属性是有意义的。那么为什么不可能在对象初始化器中使用双重赋值呢?
c++ - 以临时对象为参数的 C++ 对象构造函数
我写了一些代码,突然想到我正在做的事情可能是一个非常糟糕的主意。这是一个抽象的例子。关键是向量的引用传递。
所以我写了一些代码来表示 a class vector
,其中包含 3D 向量的东西,还写了一个粒子类,它的位置向量可以用构造函数和向量实例初始化。
在我的main()
函数中,我使用了一个临时对象来初始化粒子对象,如下所示:
这里可以看到创建了一个临时的vector实例,我假设它是放在栈的某个地方,然后调用了particle的构造函数。
这可以吗,或者它是一个非常糟糕的代码的例子?我怀疑后者,因为我是通过引用传递的,因此临时向量的实例可能无效?
希望有人可以澄清这一点?
c# - 没有默认构造函数的 C# 对象初始化器
我正在尝试使用 c# 对象初始化程序创建一个对象。但是该类已经根据需要具有一个带有一个参数的构造函数,并且我不需要默认构造函数,因此我没有提供一个。当类中有用户提供的构造函数时,编译器也不会提供默认构造函数。
现在,当我尝试使用对象初始化程序创建此类的实例时,问题就出现了:
我像这样实例化类:
现在我得到一个编译时错误:
“Foo 不包含采用 0 参数的构造函数”
我知道错误,这是因为缺少默认构造函数。当我不需要默认构造函数时,为什么要提供一个仅用于使用对象初始化器的构造函数?所以我只是想知道,是否有任何其他方式(风格,语法)我可以使用这个对象初始化器而不显式提供默认构造函数?
我检查了这个 MSDN 链接,它说如果你的类中有 PRIVATE 默认构造函数,则不能使用对象初始化器,但我这里没有私有默认构造函数。
c# - 带有对象初始值设定项的括号
在 C# 中,我可以有一个类,例如:
我可以像这样初始化这个类:
或者:
如果我不需要括号,并且对象初始化程序没有要设置的属性,为什么我不能这样做?
c# - 如何在 C# 中访问对象?
我有一个名为data的对象,它属于该类,
其中 values 是另一个具有自己变量的类,最初是在执行以下代码时,
执行第二行时出现空异常。
有什么问题?为什么 data.values.Name 即使在执行后仍然为空
我应该怎么做才能赋予它一些价值?
c# - 使用对象初始化器 - Resharper 建议
我ReSharper
每天都在使用,今天我问自己为什么 ReSharper 在我这样做时建议“使用对象初始化器”:
它被替换为:
这是否优化了我的代码的执行,还是只是重新格式化的问题?
就个人而言,我喜欢它。但有时我讨厌它,因为:
我不能step-by-step
调试:(
c# - 对象初始化器中的函数和属性使用
C# 的规范是否阻止从对象(或结构)的初始化程序构造中调用方法?
我问的原因是因为我试图使用 LINQ-to-XML 语句在初始化程序中使用门数据。这不起作用。但是,如果我事先将数据保存到局部变量中,则它可以正常工作。我只是想知道为什么会发生这种情况,因为我已经发现了我的代码中的错误。
不工作:
作品:
c# - F# 中的 C# 对象初始化语法
请注意:这个问题与这个问题不同。
我最近遇到了一些我以前没有遇到过的 C# 语法:
有没有办法在 F# 中做到这一点?
(请注意,TwoProperty
当 setter 为私有时,初始化程序中的初始化 - 它正在为存储在 中的对象设置属性TwoProperty
,但不在属性中存储 的新实例Two
)
编辑:我最近在 monotouch 的构造函数中遇到了一些 C# 代码,如下所示:
我能想到的最好的 F# 翻译是这样的:
这并不可怕,但它确实有更多的重复layer
引用加上它更多的命令性和更少的声明性。
c# - 对象初始化器的这个变体记录在哪里?
我在MSDN:Object and Collection Initializers上没有看到任何解释。具体来说,我注意到可以使用对象初始值设定项来设置子类型的属性,而不是新建子类型本身。
语法本身与我对 MSDN 页面的理解不符。我知道我可以使用对象初始化程序来设置已初始化对象的字段,但看不到在哪里记录了可以设置字段的字段。
我觉得这是合法的。一个人可以用bt.subType.subTypeValue=5;
.
c# - 使用对象初始化器的附加值是什么?
使用对象初始化器的附加价值是什么?与引用类型相比,在值类型上使用它有什么区别吗?
我最近安装了 ReSharper,对于以下示例:
我的代码转换为:
就我个人而言,当初始化程序太大时,我发现更难遵循代码。