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一个结构,并把值传过去就行了,这样就使得在给结构的定义的时候能够简单明了。