gpt4 book ai didi

C# 属性使用

转载 作者:行者123 更新时间:2023-11-30 19:02:13 24 4
gpt4 key购买 nike

不,这不是关于为什么我们应该在 C# 中使用属性的另一个问题 :) 我想知道之间的主要区别是什么

private string _name;
public string Name {
get { return _name; }
set { _name = value; }
}

public string Name { get; set; }

我知道随着 .NET 3.0 的引入,您可以使用后者,但我仍然找到使用前者的代码片段。

我很想知道它们在性能(除了我浪费了两倍的空间这一事实)、风格以及底层实现的工作方式方面有什么区别(如果有的话)。

我也想知道您的看法以及您在代码中使用了哪一种。

谢谢,编码愉快!

最佳答案

I know that with the introduction of .NET 3.0, you are able to use the latter

不,这是随着 C# 3 的引入。您可以面向 .NET 2 并仍然使用自动实现的属性。区分您正在使用的 C# 版本和您的目标 .NET 版本很重要。

但是您使用的两个片段之间没有显着差异,只是在使用自动实现的属性时,没有其他源代码可以访问该字段。该字段被赋予一个“不可描述的名称”(一个在 IL 中有效但在 C# 中无效的名称)。 (当您使用自动实现的属性时,编译器也会将 [CompilerGenerated] 特性应用于该属性,但这很少很重要。)

在时间或内存方面没有性能差异。

关于C# 属性使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com