在 .NET 应用程序中,何时应使用“ReadOnly”属性,何时应仅使用“Get”。这两者有什么区别呢。
private readonly double Fuel= 0;
public double FuelConsumption
{
get
{
return Fuel;
}
}
or
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
}
将类的私有字段设置为readonly
允许您仅在类的构造函数中设置字段值(使用内联赋值或定义的构造函数方法)。
您稍后将无法更改它。
public class ReadOnlyFields {
private readonly double a = 2.0;
private readonly double b;
public ReadOnlyFields()
{
this.b = 4.0;
}
}
readonly
类字段通常用于在类构造期间初始化的变量,并且以后永远不会更改。
简而言之,如果您需要确保您的财产价值永远不会从外部改变,but您需要能够从类代码内部更改它,请使用“仅获取”属性。
如果您需要存储一个一旦设置初始值就永远不会改变的值,请使用readonly
field.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)