0
当我们想要在代码中创建一个对象,需要用 new Object() 来创建,如果这个对象里面有一些 属性我们想要在 new 时就初始化,那么我们会重写 一个构造函数。
如果不想重写一个 构造函数 该如何做?
例子如下:
自定义一个类 Point.cs
class Point
{
public int x;
public int y;
//public Point(int sx , int sy){
// x = sx;
// y = sy;
//}
}
如果不想写上面 带初始化x,y的构造函数该如何做?
我们只需在 使用 Point的地方,用下面的代码即可:
Point p = new Point {
x = 5 ,
y = 5
};
//或
Point p1 = new Point {
x = 5
};
//或
Point py = new Point {
y = 5
};
是不是很方便,你可以在使用Point的地方随意初始化任何一个属性,而不用写多个 构造函数。
1.
如果在代码中我们会经常调用一些 变量 的值,通常会 把它统一存在 一个类中,然后把该变量的属性设置为 static。但是我们可以创建一个匿名类型,来简化使用。
例子如下:
class Help
{
public static int zero = 0;
public static double PI = 3.14;
}
使用时如下:
int z = Help.zero;
double pi = Help.PI;
用匿名类型简化,不用多余创建一个类。
//不用给属性设置类型,自动判断属性类型
//属性的名称就是匿名对象中属性的名称
//匿名对象的类型不知,只知道匿名对象的名称是 nmbject
var nmbject = new {
ZERO = 0,
PI = 3.14 ,
Name = "LIUYAN"
};
//调用 常用的值
double b = nmbject.PI;
//nmbject.PI = 2.1; 这个是错的,匿名类型是只读的,所以想要修改属性,就不能设为匿名类型
//匿名对象也可以为数组
//属性名称必须完全一样,才代表是同一种匿名类型
var nmbjectArray = new[] {
new{
PI = 3.14,
Name = "LIUYAN"
},
new{
PI = 3.15,
Name = "LIUYAN2"
},
};