SoFunction
Updated on 2025-03-06

Brief analysis of the order of initialization of c# construct


/// <summary>
///Basic class
    /// </summary>
    public class Base
    {
       public int baseint = 100;
        public Base()
        {
("Constructor: I am a base class constructor");

        }

        private class Inner
        {
            public Inner()
            {
("Field: I am the base class Inner");
            }
        }

        /// <summary>
/// Field initialization
        /// </summary>
        private Inner inner = new Inner();
    }


   /// <summary>
/// Subclass
   /// </summary>
    class Derived : Base
    {
      

        public Derived()
        {
("Constructor: I am a subclass constructor");

        }


       private class Inner
        {
            public Inner()
            {
("Field: I am a subclass Inner");
            }
        }

        /// <summary>
/// Field initialization
        /// </summary>
        private Inner inner = new Inner();

    }