gpt4 book ai didi

c# - 什么时候应该使用 Readonly 和 Get only 属性

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

在 .NET 应用程序中,什么时候应该使用“ReadOnly”属性,什么时候应该只使用“Get”。这两者有什么区别。

private readonly double Fuel= 0;

public double FuelConsumption
{
get
{
return Fuel;
}
}

private double Fuel= 0;

public double FuelConsumption
{
get
{
return Fuel;
}
}

最佳答案

创建一个只有 getter 的属性会使您的属性对于类外的任何代码都是只读的。

但是您可以使用类提供的方法更改值:

public class FuelConsumption {
private double fuel;
public double Fuel
{
get { return this.fuel; }
}
public void FillFuelTank(double amount)
{
this.fuel += amount;
}
}

public static void Main()
{
FuelConsumption f = new FuelConsumption();

double a;
a = f.Fuel; // Will work
f.Fuel = a; // Does not compile

f.FillFuelTank(10); // Value is changed from the method's code
}

将类的私有(private)字段设置为readonly 允许您仅在类的构造函数中设置字段值(使用内联赋值或定义的构造函数方法)。您以后将无法更改它。

public class ReadOnlyFields {
private readonly double a = 2.0;
private readonly double b;

public ReadOnlyFields()
{
this.b = 4.0;
}
}

readonly 类字段通常用于在类构造期间初始化的变量,以后永远不会更改。

简而言之,如果您需要确保您的属性值永远不会从外部更改,但是您需要能够从您的类代码内部更改它,请使用“仅获取"属性。

如果您需要存储一个一旦设置了初始值就永远不会改变的值,请使用readonly 字段。

关于c# - 什么时候应该使用 Readonly 和 Get only 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2719699/

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