構造器(Constructor)--構造函數

  1. 構造器是類型的成員之一,其餘成員好比,成員字段,成員函數。狹義上,構造器指的是實例構造器(instance constructor)
class Student
    {
        public int ID;
        public string Name;
        public Student()//不帶參的構造器,製造出來就又默認值了
        {
            this.ID = 1;
            this.Name = "No name";
        }
        public Student(int initId,string initName)//帶參構造器,須要在建立實例的時候手動寫入

        {
            this.ID = initId;
            this.Name = initName;
        }   
    }
 static void Main(string[] args)
        {
            Student stu = new Student(2,"Mr okay");   
            Student stu2 = new Student();   
        }
 
 

  

 
 
 

*加構造器的快捷件 ctor+兩次tab函數

2.構造器在內存裏是怎樣操做的this

在stack中是從內存地址由高到低分配的,因此叫棧溢出(stackoverflow)spa

1,對於不帶參的構造函數code

先在stack中開闢一個空間用來存放引用變量,而後去heap裏面根據成員變量類型,依次開闢空間,數據存爲0,而後將其地址複製放在剛剛stack的位置blog

2.對於帶參的構造函數內存

先在stack中開闢一個空間用來存放引用變量,而後去heap裏面根據成員變量類型,依次開闢空間,存放初始化的數據,若是是值類型,就放數據,若是是引用類型,再去另外一塊heap中開闢地址,把真正的數據放在新開闢的位置,把位數據的地址放在第一次開闢heap的裏面,stack裏面存放數據開始時候的地址,有點堆中堆的感受;string

相關文章
相關標籤/搜索