什么是最好的只使用静态字段使用,类或结构

时间:2014-08-01 11:32:41

标签: c#

我有几个静态字段,需要知道它们最适合的容器:classstruct

public class/struct MySharedFields
{
    public static readonly string Field1 = AppConfig.GetValue("Field1");
    public static readonly string Field2 = AppConfig.GetValue("Field2");
    public static readonly string Field3 = AppConfig.GetValue("Field3");
}

4 个答案:

答案 0 :(得分:2)

通常静态课程是要走的路,但它确实没有什么作用。如果需要,您可以在将来添加方法。

public static class MySharedFields
{
    public static readonly string Field1 = AppConfig.GetValue("Field1");
    public static readonly string Field2 = AppConfig.GetValue("Field2");
    public static readonly string Field3 = AppConfig.GetValue("Field3");
}

答案 1 :(得分:1)

您应该使用静态类,因为C#不允许使用静态结构:

public static class MySharedFields
{
    public static readonly Field1 = AppConfig.GetValue("Field1");
    public static readonly Field2 = AppConfig.GetValue("Field2");
    public static readonly Field3 = AppConfig.GetValue("Field3");
}

答案 2 :(得分:1)

当您使用类或结构时,第一次CLR加载Type类。类型的所有对象都可以通过GetType方法引用该类型。对象本身仅包含实例字段,所有方法和静态字段都在Type中。实例方法采用隐式额外参数this。当您调用实例方法时,对象会将自己传递给方法,该方法在Type中实际定义。结构和类之间的区别仅在于它们保留字段的位置:类的堆和结构的堆栈。因此,类和struct的静态方法之间没有真正的区别。但是您可以将class标记为static,以防止创建该类的实例。

答案 3 :(得分:0)

C#中的类和结构之间的差异非常小。

我想说,使用一个类,因为这样你可以在需要时随后添加方法。

可能结构可能会有一些性能优势,但如果这不是问题,那么在大多数情况下,类可能是最好的方法。

在您的情况下,您可以将该类设置为静态,除非您有多个实例,或者稍后您希望拥有多个实例。