在静态类中定义字段

时间:2016-07-18 15:42:04

标签: c#

我有以下带有静态字段的静态类:

public static class IncludeExtender {

  private static readonly MethodInfo _include = typeof(EntityFrameworkQueryableExtensions).GetTypeInfo();

}

上一个示例与下一个示例之间是否存在差异,其中字段值是在类构造函数中定义的?

public static class IncludeExtender {

  private static readonly MethodInfo _include;

  static IncludeExtender() {
    _include = typeof(EntityFrameworkQueryableExtensions).GetTypeInfo();
  }

}

对此最好的选择是什么?

1 个答案:

答案 0 :(得分:1)

不,他们是完全相同的。 readonly - 修饰符指出成员值可能仅在对象初始化期间更改。这要么直接在class-body中,要么在构造函数中。

但是,通过在构造函数中初始化变量,您可以在前面添加影响值的更多逻辑,例如,您可以根据特定条件更改值。见:

static IncludeExtender() {
    var a = "Test";
    _include = a.GetType().GetTypeInfo();
  }