亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問C#構造函數執行順序

請問C#構造函數執行順序

C#
開滿天機 2019-10-21 16:12:20
C#構造函數執行順序在C#中,當你做的時候Class(Type param1, Type param2) : base(param1)是先執行類的構造函數,然后調用超類構造函數還是首先調用基構造函數?
查看完整描述

3 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

命令是:

  • 成員變量被初始化為層次結構中所有類的默認值。

然后從最派生的類開始:

  • 變量初始化器是針對派生最多的類型執行的。
  • 構造函數鏈計算出將調用哪個基類構造函數。
  • 基類被初始化(遞歸所有這些:)
  • 該類中鏈中的構造函數體被執行(請注意,如果它們被鏈接在一起,則可以有多個構造函數體)。

    Foo() : this(...)

注意,在Java中,基類是初始化的以前運行變量初始化器。如果您曾經移植過任何代碼,這是一個需要了解的重要區別:)

我有一個包含更多詳細信息的頁面如果你感興趣的話。



查看完整回答
反對 回復 2019-10-22
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

您是在問何時執行構造函數調用的“基本”位嗎?

如果是這樣的話,如果類派生自具有此構造函數的另一個類,則將“連鎖”一個對構造函數基的調用:

  public class CollisionBase
    {
        public CollisionBase(Body body, GameObject entity)
        {

        }
    }

    public class TerrainCollision : CollisionBase
    {
        public TerrainCollision(Body body, GameObject entity)
            : base(body, entity)
        {

        }
    }

在這個例子中,TerrainCollision源自CollisionBase..通過以這種方式鏈接構造函數,可以確保在基類上使用提供的參數調用指定的構造函數,而不是默認構造函數(如果基類上有構造函數的話)。



查看完整回答
反對 回復 2019-10-22
  • 3 回答
  • 0 關注
  • 351 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號