title: Constructor and field initialization execution order
body: <pre><code>public class RegisterViewModel{
    public RegisterViewModel()
    {
        MaxDepartmentLevel = db.Settings.Find(1).MaxDepartmentLevel;
    }
  
    private ApplicationDbContext db = new ApplicationDbContext();
    public int MaxDepartmentLevel { get; set; }
  }
  </code></pre>
  <p>Is this safe? Can it guarantee that <code>db</code> will be initialized before the line</p>
  <p><code> MaxDepartmentLevel = db.Settings.Find(1).MaxDepartmentLevel;</code> run?</p>
  <p>In other words, what's the execution order of a class with field initialization and constructor?</p>