将consts存储在struct或static类中

时间:2014-08-21 03:35:52

标签: c# const

如果我想要存储一组与enum类似的字符串常量,最好使用struct还是static class?例如:

public struct Roman
{
    public const string One = "I";
    public const string Five = "V";
    public const string Ten = "X";
}

public static class Roman
{
    public const string One = "I";
    public const string Five = "V";
    public const string Ten = "X";
}

1 个答案:

答案 0 :(得分:6)

静态类在C#环境中更为传统。使用结构的主要缺点是您可能会意外地创建它的实例。静态类将阻止这种情况。 (在引擎盖下,静态类是abstract sealed,所以你不能创建它的实例,也不能从它派生。你不能使结构抽象,也不能将无参数构造函数设为私有,所以那里无法创建一个" unconstructable" struct。)

这两种方法都不会对常量值的性能或行为产生任何影响。