Sur un système page webforms .aspx
, la page principale a quelques propriétés auto initialisé, en tant que telleQuand l'initialisation des propriétés automatiques C# est-elle effectuée?
public bool MyProp => bool.Parse(Service.Settings["YorN"]);
charge page Profilage, je vois que entre l'événement PreRender
et l'initialisation de l'une des propriétés il y a un grand écart.
Où puis-je chercher pour déterminer le délai? Qu'est-ce qui court entre les deux?
est-il pas _after_ le constructeur est appelé? – JNF
@JNF: Ce sera avant que le constructeur * body * ne s'exécute, en même temps que les autres initialiseurs de champ. –
@JNF Non, les initialiseurs de champ sont exécutés avant le constructeur. Créez une instance de cette classe pour voir par vous-même: 'public class Foo {int i = 5; Foo public() {Console.WriteLine (i); }} 'Si le champ est initialisé en premier, il affichera' 5', sinon il affichera '0'. – Servy