.NET, Architecture, ALM, Cloud

Publicité

IDisposable & Contructeur statique

Que va afficher le programme suivant ? : 

 

    public class MyClass : IDisposable
    {
        staticMyClass()
        {
            Console.WriteLine("Invoke Static Ctor of MyClass");
        }

        public MyClass()
        {
            Console.WriteLine("Create a instance of MyClass");
        } 

        public void Method1()
        {
            Console.WriteLine("Invoke Method 1");
        } 

        public void Dispose()
        {
            Console.WriteLine("Dispose MyClass");
        }
    } 

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Begin Main"); 

            using(MyClass myClass = new MyClass())
            {
                myClass.Method1();
            } 

            Console.WriteLine("End Main");
        }
    }

 

  • a) Begin Main
    Create a instance of MyClass
    Invoke Static Ctor of MyClass
    Invoke Method 1
    Dispose MyClass
    End Main
  • b) Begin Main
    Invoke Static Ctor of MyClass
    Create a instance of MyClass
    Invoke Method 1
    Dispose MyClass
    End Main
  • c) Invoke Static Ctor of MyClass
    Begin Main
    Create a instance of MyClass
    Invoke Method 1
    Dispose MyClass
    End Main
  • d) Invoke Static Ctor of MyClass
    Begin Main
    Create a instance of MyClass
    Invoke Method 1
    End Main
    Dispose MyClass

 

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
<br /> Bonne réponse : b.<br /> <br /> <br /> Un constructeur est appellé une seule fois pour toutes les instances d'une classe lors du premier appel de celle ci.<br /> <br /> <br /> La libération (dispose) de l'instance de la classe se fait à la fermeture du using, instruction qui a pour rôle de librérer la ressource une fois utilisée.<br />
Répondre