c#的結構類型也可以有構造函數

protected struct FlareData
        {
            /// <summary>
            /// Type of flare, see above.
            /// </summary>
            public int type;
            /// <summary>
            /// Position of flare (1=origin, 0=center of screen, -1=other side)
            /// </summary>
            public float position;
            /// <summary>
            /// Scale of flare in relation to MaxFlareSize.
            /// </summary>
            public float scale;
            /// <summary>
            /// Color of this flare.
            /// </summary>
            public Color color;

            /// <summary>
            /// Constructor to set all values.
            /// </summary>
            /// <param name="setType">Set type</param>
            /// <param name="setPosition">Set position</param>
            /// <param name="setScale">Set scale</param>
            /// <param name="setColor">Set Color</param>
            public FlareData(int setType, float setPosition,
                float setScale, Color setColor)
            {
                type = setType;
                position = setPosition;
                scale = setScale;
                color = setColor;
            }
        }
這一段是Benjamin在XNA平臺下做個一個遊戲模板的其中一段,讓我們來看看:

FlareData是一個結構類型,在結構中聲明瞭若干的變量,然後在最後出現了有類似類的構造函數的一段代碼,從來沒有遇到過此類的用法。但仔細想想,結構在某個角度來看,也可以認爲是一個類,類有構造函數,這個是毋庸置疑的,那既然如此,結構有構造函數也說的過去。

 

一般我們在代碼中定義一個結構的值的時候,都需要“××.××=某個值”這樣來定義,而使用了構造函數後,僅僅需要new一個結構,並把值傳過去就行了,這樣就使得在給結構的定義的時候能夠簡單明瞭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章