//FangXiang.cs--定义结构体FangXiang
/// <summary>
/// 定义一个方向类
/// </summary>
//class FangXiang
//定义一个FangXiang的构造体
struct FangXiang
{
private int hangIndex;
public int HangIndex
{
get { return hangIndex; }
set { this.hangIndex = value; }
}
public int lieIndex { get; set; }
//结构体自带无参数构造函数,所以在代码中不能写有无参数的构造函数
//public FangXiang()
//{
//
//}
public FangXiang(int hangIndex, int lieIndex):this()
{
//构造函数中,必须先为所有字段赋值
//:this()有参数构造函数,先调用无参构造函数,为自动属性的字段赋值(普通属性不算)
//没有自动属性时,可以不调用无参构造函数,仅仅为现有的字段赋值即可。
this.hangIndex = hangIndex;
this.lieIndex = lieIndex;
}
public static FangXiang UP
{
get { return new FangXiang(-1, 0); }
}
public static FangXiang Down
{
get { return new FangXiang(+1, 0); }
}
public static FangXiang Left
{
get { return new FangXiang(0, -1); }
}
public static FangXiang Right
{
get { return new FangXiang(0, +1); }
}
public static FangXiang LeftUP
{
get { return new FangXiang(-1, -1); }
}
public static FangXiang RightUP
{
get { return new FangXiang(-1, +1); }
}
public static FangXiang LeftDown
{
get { return new FangXiang(+1, -1); }
}
public static FangXiang RightDown
{
get { return new FangXiang(+1, +1); }
}
}
|