Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 持续持有一个数字的变量,而不能编辑该值_C# - Fatal编程技术网

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;