2016-11-10 71 views
-1

是否存在一个标准术语,用于在不使用显式构造函数的情况下实例化类的练习,而是初始化其某些属性?实例化练习的标准术语

new SomeClass { PropertyA = true, PropertyB = "ugly code is ugly" }; 

我猜可能有一个标准的不判断的术语,然后可能有一个否定的术语。

** ** --- ---后期编辑澄清意见和解答--- *** ---

对象初始化它。

阅读评论后,我明白对象初始化本身并不是一个坏习惯;问题在于缺乏定义明确的构造函数,而不喜欢在解决方案中传播对象初始化,这使解决方案难以维护和理解。

坏使用对象初始化的一个例子:

  • Student具有10倍的性能,包括CodeProgram
  • 代码从10多个不同的点实例化这个类。
  • 每次,CodeProgram正在通过对象初始化定义。

在这种情况下,类Student应该有一个构造函数执行CodeProgram要在实例通过。

+4

这是一个对象初始化简称更好。这就是它的所谓,在好时光和坏。这*使用构造函数:在这种情况下的默认构造函数。然后它分配一些属性。就像它会为你写更多的代码一样。我从来没有听到任何人对此作出评判,但毫无疑问,有人找到了理由。 –

+0

我认为作者意味着做新的SomeClass(真的,“难看的代码是丑陋的”)和显示的问题之间的区别。 – Evk

+0

我们不知道是否有这样的构造函数可以像这样。 – belurd

回答

1

这是一个对象初始化。

我不确定你的意思是“否定词”。实例化一个对象并在其中设置一些属性没有任何问题。它比其他

var someClass = new SomeClass(); 
someClass.PropertyA = true; 
someClass.PropertyB = "Clean code is clean"; 
+0

你是对的,但我接受了另一个,因为它之前来了。关于负面的东西,我更新了有关这个问题的评论。感谢您的快速回答:) – daniloquio