在C#中,哪些类型可以声明为const
?
const int i = 0;
const double d = 0;
const decimal m = 0;
const referenceType = null;
我可以参考一份全面的清单吗?
答案 0 :(得分:5)
好MSDN明确指出
常量表达式是一个可以在中完全计算的表达式 编译时间。因此,常量的唯一可能值 引用类型是字符串和null。
从C#语言规范的第10.4节开始。这些是可以使用的类型。
常量声明中指定的类型必须是sbyte,byte, short,ushort,int,uint,long,ulong,char,float,double,decimal, bool,string,enum-type或reference-type。每 constant-expression必须产生目标类型或类型的值 可以通过隐式转换
转换为目标类型
答案 1 :(得分:1)
来自MSDN:
常量是不可变的值,它们在编译时是已知的,并且在程序的生命周期内不会更改。使用const修饰符声明常量。 只有C#内置类型(不包括System.Object)可以声明为const 。有关内置类型的列表,请参阅内置类型表(C#参考)。用户定义的类型(包括类,结构和数组)不能是const。使用readonly修饰符创建在运行时初始化一次的类,结构或数组(例如在构造函数中),然后无法更改。
C#不支持const方法,属性或事件。
答案 2 :(得分:0)
在C#的上下文中,常量是一种字段或局部变量 其值在编译时设置,永远不能在运行时更改 时间。它通过具有名称,值和a来类似于变量 记忆位置。但是,它与变量的区别在于它 在应用程序中只初始化一次的特性。一个 使用关键字“const”声明常量。
Constants (C# Programming Guide)
只有C#内置类型(不包括System.Object)可以声明为const。有关内置类型的列表,请参阅 Built-In Types Table (C# Reference)。