gpt4 book ai didi

c# - 设置为私有(private)或没有私有(private)关键字的属性。有什么区别?

转载 作者:太空狗 更新时间:2023-10-30 00:15:51 25 4
gpt4 key购买 nike

我正在设置类的属性

public string Name { get; set; }

但是我也可以这样设置属性

public string Name { get; private set; }

我想知道它们之间的区别?他们有什么范围?

最佳答案

这意味着您不能从类实例中设置此属性。只有同级别的成员才能设置它。因此对于外人来说,此属性变为只读属性。

class Foo
{
public string Name1 { get; set; }

public string Name2 { get; private set; }

public string Name3 { get { return Name2; } set { Name2 = value; }
}

然后

Foo f = new Foo();

f.Name1 = ""; // No Error

f.Name2 = ""; // Error.

f.Name3 = ""; // No Error

Name3 将在 Name2 中设置值,但不能直接在 Name2 中设置值。

and what scope they have?

由于 Name1Name3 属性是公共(public)的,因此它们及其 get 和 set 方法随处可用。

Name3 也是公共(public)的,但它的集合是私有(private)的,因此属性和 get 方法随处可用。设置方法范围仅限于类(private 访问修饰符在定义它的实体内具有范围)。

关于c# - 设置为私有(private)或没有私有(private)关键字的属性。有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828697/

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