C# 持续持有一个数字的变量,而不能编辑该值
如何使整型变量在整个游戏运行期间始终保持数字不变,而不编辑其中的值?您可以使用常数:C# 持续持有一个数字的变量,而不能编辑该值,c#,C#,如何使整型变量在整个游戏运行期间始终保持数字不变,而不编辑其中的值?您可以使用常数: public const int SomeValue = 123; 或只能在类的构造函数中分配的实例字段: public class Foo { public readonly int SomeValue; public Foo() { SomeValue = 123; } } 或者可以使用静态只读字段(需要在静态构造函数或内联中初始化): 或者,您可以使用带
public const int SomeValue = 123;
或只能在类的构造函数中分配的实例字段:
public class Foo
{
public readonly int SomeValue;
public Foo()
{
SomeValue = 123;
}
}
或者可以使用静态只读字段(需要在静态构造函数或内联中初始化):
或者,您可以使用带有私有setter的属性,该属性允许您仅从包含类内部设置值:
public class Foo
{
public int SomeValue { get; private set; }
public Foo()
{
SomeValue = 123;
}
}
或者,如果希望该值在应用程序的整个生命周期内仅初始化一次,则可以实现
所以,是的,根据你想要实现的目标,有很多方法可以实现。根据特定的上下文,某些方法可能比其他方法更受欢迎。这里有两种选择 一种是使用常量
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
字段可以在声明或在构造函数中初始化。
因此,虽然
const
字段是编译时常量,但readonly
字段可用于运行时常量。您需要指定更多上下文,例如您使用的编程语言。在任何人回答此问题之前,都需要一些小细节,例如您正在谈论的语言。
public readonly int y = 25;
public readonly int z;
public static readonly uint l1 = (uint) DateTime.Now.Ticks;