gpt4 book ai didi

c# - 如何使字段在类外只读

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

我有以下类(class)(示例):

public class Dog
{
int numberOfTeeth;

public Dog()
{
countTeeth();
}

private void countTeeth()
{
this.numberOfTeeth = 5; //this dog has seen better days, apparently
}

}

在我创建了狗对象之后,它应该计算出 dentry 的数量。我希望能够访问该值而不能在类本身之外对其进行修改。

Dog d = new Dog();
int dogTeeth = d.numberOfTeeth; //this should be possible
d.numberOfTeeth = 10; //this should not

但是,我不知道哪个访问修饰符可以让我这样做。我已经尝试了以下所有方法:

如果我将numberOfTeeth设为私有(private),我将无法访问它。
如果我将 numberOfTeeth protected internal,我可以在类外更改此值。
如果我将 numberOfTeeth internal,我可以在类外更改此值。
如果我将 numberOfTeeth 保护,我将无法访问它。
如果我将 numberOfTeeth public,我可以在类外更改此值。

我也尝试过将其设置为只读,但无法在构造函数之外设置它。

是否有任何访问修饰符可以让我这样做?还是有其他方法可以实现这种保护?

最佳答案

创建一个带有私有(private) setter 的属性:

public int NumberOfTeeth
{
get; private set;
}

请注意,我将其更改为 Pascal Case 以匹配大多数 .NET 样式标准。

关于c# - 如何使字段在类外只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13401045/

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