![]() |
1
6
C编译器为其生成的代码 auto-implemented properties 是 几乎 与您的第一个示例相同(它使用一个私有的支持字段),所以我不会太担心它。
这个
只有
真正的区别在于它用
我喜欢自动实现的属性,当然除了简洁性之外,它还防止声明类型访问支持字段而不是属性(支持字段是匿名的)。这使得代码更加清晰,通常也使得重构/更改属性实现变得更加容易。 |
![]() |
2
11
在第二种情况下,C编译器将为您生成一个字段,并生成一个getter和setter来访问它。换句话说,您发布的两个代码示例之间没有功能差异。唯一的区别是私有字段的名称,它将由编译器生成。 |
![]() |
3
1
我刚才问过这个问题: 看见 Correct use of C# properties 引用答案:
|
![]() |
4
1
不同的是你可以控制getter和setter。 使用自动实现,您不能执行以下操作:
如果您不需要这样做,那么自动实现就足够了。 与字段相比,使用自动属性实现的主要优势在于,当使用自动属性实现时,稍后希望将实现更改为(例如)上面的实现时,类的接口不会更改。 |
![]() |
5
1
与第二种情况下的性能相比,没有区别的是用于写入被称为自动属性的属性的合成糖。 如果您想在集合或获取部分中放入一些逻辑,您将无法执行自动属性。 |
![]() |
Sweepy Dodo · JSON lite的格式化 5 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 6 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 6 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 10 月前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 10 月前 |
![]() |
Mohan · 是否有一种更快的方法来编写代码,从1:N中提取许多随机样本? 10 月前 |
![]() |
user2980746 · 在C#字典中键入xyz对的最有效方法是什么? 10 月前 |