变量持续保持数字而不能编辑值

时间:2011-06-05 19:13:33

标签: c#

如何使整数类型的变量在游戏运行的整个过程中不断保持数字,而无法编辑内部的值?

2 个答案:

答案 0 :(得分:3)

您可以使用常量:

public const int SomeValue = 123;

readonly实例字段,只能在类的构造函数中分配:

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 pattern

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

答案 1 :(得分:0)

你有几个选择。

一种是使用常量

 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只能在声明时初始化。也就是说,该值在声明变量时设置,并且无法更改。

在构造函数中声明OR时,可以初始化readonly字段。 因此,虽然const字段是编译时常量,但readonly字段可用于运行时常量。