如何使整数类型的变量在游戏运行的整个过程中不断保持数字,而无法编辑内部的值?
答案 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
字段可用于运行时常量。