class Program
{
static void Main(string[] args)
{
//①属性本身不存值,值是存在这个属性所封装的字段里面
//没有办法调用默认的构造函初始化
//Point p;
//Console.WriteLine(p);
//会调用默认的构造函数对的Point对象初始化
Point p1 = new Point();
Console.WriteLine(p1);
//Console.ReadKey();
//静态的构造函数会先于实例构造函数执行
Cat c;
Cat c1 = new Cat();
Cat c2 = new Cat();
Console.ReadKey();
Array[] arrays = new Array[] { };
int[] arry = new int[] { 1,2};
//可变参数 只能放在方法参数的最后使用 参数是可以动态累加的
//一个函数中只能一个参数带params关键字
//带params关键字的参数必须是最后一个参数
//带params关键字的参数类型必须是一维数组
Param(1,"",1);
Console.Write("\n ---------------\n");
Param(1, "", 1, 2, 3);
}
//params 可变参数 用来修饰一维数组 sqlHelper 中常用 params SqlParameter[] pas
public static void Param(int a, string 参数b , params int[] arr)
{
foreach (var item in arr)
{
Console.WriteLine(item);
}
}
}
//定义结构
struct Point
{
//定义时赋初始值,编译器会报错
private int x;
public string name;
//public Point(int x ,string name) {
// this.name = "zf";
// this.x = 0;
//}
}
// 1、静态类的主要特性:
//[1] 仅包含静态成员。
//[2] 无法实例化。
//[3] 静态类的本质,是一个抽象的密封类,所以不能被继承,也不能被实例化。
//[4] 不能包含实例构造函数。
//[5] 如果一个类下面的所有成员,都需要被共享,那么可以把这个类定义为静态类。
public static class Person
{
//private int nAge;
private static string strName;
static Person()
{
}
}
//静态类可以有静态的构造函数(且所有类都可以有静态的构造函数)
class Cat
{
private int n;
public string strName;
//实例构造函数
public Cat()
{
Console.WriteLine("看谁先执行2");
}
//静态构造函数
static Cat()
{
Console.WriteLine("看谁先执行1");
}
}