变量,保持一个数字不变,但不能编辑值

本文关键字:数字 编辑 一个 但不能 变量 | 更新日期: 2023-09-27 17:58:29

我如何使一个整数类型的变量在游戏运行的整个过程中始终保持一个数字,而不能编辑里面的值?

变量,保持一个数字不变,但不能编辑值

您可以使用一个常量:

public const int SomeValue = 123;

或者只能在类的构造函数中分配的只读实例字段:

public class Foo
{
    public readonly int SomeValue;
    public Foo()
    {
        SomeValue = 123;
    }
}

或者可以使用静态只读字段(需要在静态构造函数或内联中初始化):

public static readonly int SomeValue = 123;

或者,您可以使用带有私有setter的属性,该属性允许您仅从包含类内部设置值:

public class Foo
{
    public int SomeValue { get; private set; }
    public Foo()
    {
        SomeValue = 123;
    }
}

或者,如果希望在应用程序的整个生命周期中只初始化一次该值,则可以实现Singleton模式。

所以,是的,根据你想要实现的目标,有很多方法可以实现。根据具体的情况,有些方法可能比其他方法更可取。

这里有几个选项。

一种是使用常量

 const float pi = 3.14f;
 const int r = 123;
 const string selectQuery = "SELECT * FROM [Products]";

另一种是使用只读变量

  public readonly int y = 25; 
  public readonly int z;
  public static readonly uint l1 = (uint) DateTime.Now.Ticks;

有什么区别const只能在声明时进行初始化。也就是说,该值是在声明变量时设置的,并且不能更改。

readonly字段在构造函数中被声明为OR时,它可以被初始化。因此,当const字段是编译时常数时,readonly字段可以用于运行时常数。