在C#中,哪些类型可以声明为
有没有一份全面的清单可以供我参考?
const
?const int i = 0;
const double d = 0;
const decimal m = 0;
const referenceType = null;
有没有一份全面的清单可以供我参考?
根据MSDN的明确说明:
常量表达式是一种可以在编译时完全计算的表达式。因此,引用类型的常量唯一可能的值是字符串和 null。
从C#语言规范的第10.4节得知以下类型可以使用:
在常量声明中指定的类型必须是sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string、枚举类型或引用类型。每个常量表达式必须产生目标类型的值或可通过隐式转换转换为目标类型的类型的值。
来自MSDN:
常量是在编译时已知且在程序生命周期内不会改变的不可变值。常量使用const修饰符声明。只有C#内置类型(不包括System.Object)可以声明为常量。有关内置类型的列表,请参见内置类型表(C#参考)。用户定义的类型,包括类、结构和数组,不能是常量。使用readonly修饰符创建一个在运行时初始化一次(例如在构造函数中)并且之后无法更改的类、结构或数组。
C#不支持常量方法、属性或事件。
System.Object
和任何其他引用类型都可以声明为const
(除非它们指向null)。 - nawfalSystem.Object
和任何其他引用类型都可以声明为const
(除非它们指向null)。 - nawfal