实例化实践的标准术语
Standard term for instantiation practice
在不使用显式构造函数而是初始化其某些属性的情况下实例化 class 的做法是否有标准术语?
new SomeClass { PropertyA = true, PropertyB = "ugly code is ugly" };
我猜可能有一个标准的而非判断性的术语,然后可能有一个否定的术语。
** --- ** --- 已编辑 POST 澄清评论和答案 --- *** ---
它是对象初始化。
阅读评论后,我明白了对象初始化本身并不是一个坏习惯;问题是缺乏定义良好的构造函数来支持对象初始化分布在整个解决方案中,这使得解决方案更难维护和理解。
一个错误使用对象初始化的例子:
- Class
Student
有 10 个属性,包括 Code
和 Program
.
- 代码从 10 多个不同的点实例化此 class。
- 每一次,
Code
和Program
都是通过对象初始化来定义的。
在这种情况下,class Student
应该有一个构造函数强制 Code
和 Program
在实例化时传递。
它被称为对象初始化
这是一个对象初始化器。
我不确定 "negative term" 是什么意思。一次性实例化一个对象并设置它的一些属性没有错。它比替代品更好
var someClass = new SomeClass();
someClass.PropertyA = true;
someClass.PropertyB = "Clean code is clean";
我相信它被称为“Initializer Syntax”
在不使用显式构造函数而是初始化其某些属性的情况下实例化 class 的做法是否有标准术语?
new SomeClass { PropertyA = true, PropertyB = "ugly code is ugly" };
我猜可能有一个标准的而非判断性的术语,然后可能有一个否定的术语。
** --- ** --- 已编辑 POST 澄清评论和答案 --- *** ---
它是对象初始化。
阅读评论后,我明白了对象初始化本身并不是一个坏习惯;问题是缺乏定义良好的构造函数来支持对象初始化分布在整个解决方案中,这使得解决方案更难维护和理解。
一个错误使用对象初始化的例子:
- Class
Student
有 10 个属性,包括Code
和Program
. - 代码从 10 多个不同的点实例化此 class。
- 每一次,
Code
和Program
都是通过对象初始化来定义的。
在这种情况下,class Student
应该有一个构造函数强制 Code
和 Program
在实例化时传递。
它被称为对象初始化
这是一个对象初始化器。
我不确定 "negative term" 是什么意思。一次性实例化一个对象并设置它的一些属性没有错。它比替代品更好
var someClass = new SomeClass();
someClass.PropertyA = true;
someClass.PropertyB = "Clean code is clean";
我相信它被称为“Initializer Syntax”