关于自定义构造函数,有点不明,上来请教下
public enum PointColor
{LightBlue,BloodRed,Gold}
class Point
{
public int X{get;set;}
public int Y{get;set;}
public PointColor Color{get;set;}
public Point(int Xval,int Yval)
{
X = Xval;
Y = Yval;
Color = PointColor.Gold;
}
public Point(PointColor ptColor)
{
Color = ptColor;
}
public Point()
{
:this(PointColor.BloodRed){}
}
public void DisplayStats()
{
Console.WriteLine("[{0},{1}]",X,Y);
Console.WriteLine("Point is {0}",Color);
}
}
//使用初始化语法调用自定义构造函数
Point goldPoint = new Point(PointColor.Gold){X = 90,Y = 20};
Console.WriteLine("Value of Point is : {0}",goldPoint.DisplayStats());
那如果我这样调用呢?
//第一种
Point goldPoint = new Point(90,20){Color = PointColor.Gold};
//第二种
Point goldPoint = new Point{X = 90,Y = 20,Color = PointColor.Gold};
这样正不正确?新学这种调用的方法,挺迷糊的
[解决办法]
Point goldPoint;
上面是实例化一个对象
goldPoint = new Point(90,20)
上面是初始化一个具体对象,并且使goldPoint指向他
Point goldPoint = new Point(90,20);
上面是初始化和实例化放在一起了。
Point goldPoint = new Point{X = 90,Y = 20,Color = PointColor.Gold};
上面是把实始化实例化以及对象内成员属性进行赋值的一种写法。