如何访问常量值而不在C#中定义静态类?

如何访问常量值而不在C#中定义静态类?,c#,C#,在php中,我可以定义一个具有常量值且易于访问的类,在C#中如何做到这一点 const变量本质上是一个静态值。这就是为什么在类中声明常量时,不能将常量声明为static,因为它已经是隐式静态的 public class Values { public const int CONSTANT_VALUE = 12; } 访问常量的方式与访问静态字段的方式相同 int i = Values.CONSTANT_VALUE; 然而,const的限制是它只能与值类型一起使用。这是因为当程序被编译

在php中,我可以定义一个具有常量值且易于访问的类,在C#中如何做到这一点


const
变量本质上是一个静态值。这就是为什么在类中声明常量时,不能将常量声明为
static
,因为它已经是隐式静态的

public class Values
{
    public const int CONSTANT_VALUE = 12;
}
访问常量的方式与访问静态字段的方式相同

int i = Values.CONSTANT_VALUE;
然而,
const
的限制是它只能与值类型一起使用。这是因为当程序被编译时,常量实际上被转换成一个文本值,无论它在哪里被引用。编译程序后,上述对常量的访问基本上转换为:

int i = 12;
现在,仅仅因为
const
字段是隐式静态的,并不意味着它只能在静态类中声明。静态类只是一个不包含实例成员的专用类。常规类可以同时包含静态成员和实例成员

public class Values
{
    public const int CONSTANT_VALUE = 12;
    public int Val;
}
此类可按如下方式使用:

Values v = new Values;
v.Val = Values.CONSTANT_VALUE;

非常感谢它解决了我的问题,我一直尝试使用“:”而不是“.”访问它
Values v = new Values;
v.Val = Values.CONSTANT_VALUE;