gpt4 book ai didi

c# - 了解私有(private)二传手

转载 作者:IT王子 更新时间:2023-10-29 03:38:51 24 4
gpt4 key购买 nike

我不明白拥有以 C# 2 开头的私有(private) setter 的必要性。

对我来说有一个 setter 方法就是让用户在那个类中设置一些变量。这样做时,我们不会将变量直接暴露给用户。相反,我们让他们通过这个公共(public) setter 方法来完成。

这对我来说是使用“封装”。有一些论点声称私有(private) setter 可以让您应用封装。

我不是通过使用公共(public) setter 方法来使用封装吗?为什么我们需要私有(private)二传手?

不可变类和具有私有(private) setter 的类有什么区别?

最佳答案

逻辑上。

私有(private) setter 的存在是因为您可以使用自动属性:

public int MyProperty { get; set; }

如果你想让它只读,你会怎么做?

public int MyProperty { get; }

哦废话!我无法从我自己的类(class)访问它;我应该像创建普通属性一样创建它:

private int myProperty;
public int MyProperty { get { return myProperty; } }

嗯...但是我失去了“自动属性”功能...

public int MyProperty { get; private set; }

啊哈..那更好!!

关于c# - 了解私有(private)二传手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847832/

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