gpt4 book ai didi

c# - 自动实现的 getter 和 setter 与公共(public)字段

转载 作者:IT王子 更新时间:2023-10-29 03:41:37 25 4
gpt4 key购买 nike

我看到很多 C# 类的示例代码都是这样做的:

public class Point {
public int x { get; set; }
public int y { get; set; }
}

或者,在旧代码中,具有显式私有(private)支持值但没有新的自动实现的属性:

public class Point {
private int _x;
private int _y;

public int x {
get { return _x; }
set { _x = value; }
}

public int y {
get { return _y; }
set { _y = value; }
}
}

我的问题是为什么。执行上述操作与仅将这些成员设置为公共(public)字段(如下所示)之间在功能上有什么区别吗?

public class Point {
public int x;
public int y;
}

明确地说,当您需要对基础数据进行一些转换时,我理解 getter 和 setter 的值(value)。但在您只是传递值的情况下,它似乎不必要地冗长。

最佳答案

我倾向于同意(这似乎不必要地冗长),尽管这是我们团队尚未解决的问题,因此我们的编码标准仍然坚持所有类的冗长属性。

Jeff Atwood几年前处理过这个问题。他回顾指出的最重要的一点是,从字段更改为属性是一个 breaking change在你的代码中;任何使用它的东西都必须重新编译以使用新的类接口(interface),所以如果你控制之外的任何东西正在使用你的类,你可能会遇到问题。

关于c# - 自动实现的 getter 和 setter 与公共(public)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/111461/

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