|
|
1
251
对象初始值设定项是在C#3中添加的,目的是在使用对象时简化对象的构造。 构造函数在给定0个或多个参数的情况下运行,用于创建和初始化对象 之前
在本例中,的构造函数
通常,让构造函数需要所需的参数才能完全设置对象被认为是一种良好的做法,这样就不可能在无效状态下创建对象。 但是,通常可以设置但不是必需的“额外”属性。这可以通过重载构造函数来处理,但会导致大量构造函数在大多数情况下不一定有用。 这将导致对象初始值设定项-对象初始值设定项允许您在对象上设置属性或字段 之后 它已经建造好了,但是 之前 你可以把它用在其他任何东西上。例如:
这与执行以下操作时的行为大致相同:
然而,在 环境对象初始值设定项的原子性可能是有益的,因为它可以防止对象处于未完全初始化的状态(请参阅 this answer 如需了解更多详细信息),它要么为null,要么按预期进行初始化。
|
|
|
2
51
构造函数是在类型上定义的方法,它接受指定数量的参数,并用于创建和初始化对象。 对象初始值设定项是在构造函数之后在对象上运行的代码,可用于将对象上任意数量的字段简洁地设置为指定值。这些字段的设置将发生 之后
|
|
|
3
34
当你这样做的时候
这就是对象初始值设定项的基本功能:
this . 了解对象初始值设定项如何工作很重要。 |
|
|
4
16
在这种情况下,如果不指定这些必需属性,就无法创建对象。对象初始值设定项不能强制执行类似的操作。 对象初始值设定项实际上只是缩短初始赋值的“语法便利”。不错,但在功能上不是很相关。
|
|
|
5
4
构造函数是(可能)接受参数并返回类的新实例的方法。它可能包含初始化逻辑。
现在考虑下面的例子:
使用对象初始值设定项可以获得与第一个示例相同的结果,假设您可以使用以下代码访问SomeClass:
不过,请注意,对象初始值设定项只是语法上的糖分,编译后与赋值序列并没有什么区别。 |
|
|
6
0
对象初始值设定项在LINQ查询表达式中特别有用。查询表达式经常使用匿名类型,只有使用对象初始值设定项才能初始化匿名类型,如下面的代码示例所示:`
|
|
|
7
0
编译器将显示错误-没有给出与所需形式参数对应的参数。可以通过在OrderLine类中包含不带参数的显式默认构造函数来修复它:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |