gpt4 book ai didi

c# - 自动生成的属性{get;设置;}与{获取;私有(private)或保护集;}在 C# 中

转载 作者:太空狗 更新时间:2023-10-30 00:03:33 27 4
gpt4 key购买 nike

我看到很多代码使用自动生成的属性,比如 {get;私有(private)集;{get;保护集;

这个 privateprotected 集有什么好处?

我试过这段代码,但是当我有 Foo{get;设置;

public class MyClass
{
public int Foo {get; private set;}
public static void RunSnippet()
{
var x = new MyClass();
x.Foo = 30;
Console.WriteLine(x.Foo);
}
...
}

最佳答案

它使属性对外部源(即不是 MyClass 和/或其子类的类)只读。或者,如果您使用 private set 声明属性 protected,它对其子类是只读的,但它自己是可写的。

这对您的类(class)没有影响,因为您的 setter 对该类(class)是私有(private)的,因此您的类(class)仍然可以访问它。但是,如果您尝试从另一个类实例化 MyClass,如果 Foo 属性具有私有(private)或 protected setter,则您将无法修改它的值。

privateprotected 在这里的含义与它们在其他地方的含义相同:private 仅限制对那个类的访问,而 protected 限制对该类及其所有派生类的访问。

关于c# - 自动生成的属性{get;设置;}与{获取;私有(private)或保护集;}在 C# 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536420/

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