Le code suivant n'appelle pas le constructeur statique de classe. Est-ce un bug ou une fonctionnalité?C# problème de constructeur statique
class Test
{
static Test
{
//do stuff
}
public static AnotherClass ClassInstance { get; set; }
}
class Program
{
public static void Main()
{
var x = Test.ClassInstance;
}
}
Je n'ai pas de compilateur pour le moment, mais c'est ce qui m'est arrivé aujourd'hui. Le constructeur statique n'est jamais appelé, mais il est appelé lorsque ClassInstance est un champ à la place. Je comprends que le constructeur statique est appelé lorsque la première instance est créée ou qu'un champ est accédé. N'y a-t-il pas un champ derrière la propriété implémentée automatiquement?
Je cherche une explication sur pourquoi la propriété ne déclenche pas de constructeur statique quand la propriété est implémentée comme deux fonctions et un champ. C'est tout à fait illogique pour moi et c'est pourquoi j'ai pensé que ça pourrait être un bug.
Je viens compilé et a couru votre code. Le constructeur statique est appelé. –
@Joe quel cadre ciblez-vous? – Simone
@Simone J'ai essayé de cibler chaque framework disponible dans VS2010 (à savoir 2.0 et supérieur) et ça fonctionne de la même manière dans tous les cas. –