gpt4 book ai didi

c# - 为什么我需要使用 get 和 set?

转载 作者:可可西里 更新时间:2023-11-01 08:20:06 24 4
gpt4 key购买 nike

我有一段代码:

public class MyClass
{
private string _myProperty;

public string MyProperty
{
get
{
return _myProperty;
}

set
{
_myProperty = value;
}
}
}

这里有什么意义?我可以将 _myProperty 字符串声明为公共(public)字符串,我的任何类对象都可以直接访问它们并获取或设置值。

相反,我们将 _myProperty 设为私有(private),并使用类对象使用 get 和 set 来访问它们。

在任何一种情况下,类对象都能够访问它们并且结果总是相同的。

那么为什么要使用这种方法呢?这仅仅是因为我可以在 setter 中实现很少的约束吗?

除此之外,将成员变量公开会造成什么危害?在此示例中,我可以将 _myProperty 公开为公共(public)的,而不是像 OOP 所建议的那样,仅通过将其设为私有(private)来将其限制为此类。

最佳答案

不,结果不是总是一样的。

  • 尝试绑定(bind)到公共(public)字段(或做任何其他使用反射和期望属性的事情)
  • 尝试通过引用传递属性(你不能)
  • 尝试稍后决定您想要日志记录等并发现当您将其更改为属性时,您会失去源代码和二进制兼容性。

阅读article I wrote on this不久前...

请注意,从 C# 2 开始,您的代码可以很多但更短:

public class MyClass
{
public string MyProperty { get; set; }
}

关于c# - 为什么我需要使用 get 和 set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7967706/

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