gpt4 book ai didi

C#属性,这两个实现有什么区别?

转载 作者:行者123 更新时间:2023-11-30 13:31:47 25 4
gpt4 key购买 nike

下面两种 POCO 类的实现有什么区别?

class Test
{
int _var1;
string _var2;

public int var1
{
get
{
return _var1;
}
set
{
_var1 = value;
}
}

public string var2
{
get
{
return _var2;
}
set
{
_var2 = value;
}
}
}

class Test2
{
int _var1;
string _var2;

public int var1
{
get;
set;
}

public string var2
{
get;
set;
}
}

最佳答案

第一个是带有支持字段的常规属性实现,第二个是 auto-implemented properties并且这些字段不会被使用,因为编译器将为您生成支持字段。

自动实现的属性使您不必编写支持字段和样板代码来访问它们,编译器会在 IL 中创建 C# 无法命名的支持字段,这些字段不会与类中的其他字段名称冲突。

最终效果是它们是等价的,虽然我听说过由于支持字段的名称导致自动属性的序列化问题,让我找到问题...抱歉,我现在似乎找不到它。

关于C#属性,这两个实现有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781752/

25 4 0
文章推荐: c# - NuGet 不支持 packages.config
文章推荐: javascript - 使用 jQuery 从表中的文本字段中选择数据
文章推荐: javascript - 在按钮隐藏时继续上传上传?
文章推荐: c# - 从 IEnumerable> linq 选择 IEnumerable