static:静态的修饰类:
1. 静态类,
2. 只能拥有静态的成员或者常量,
3. 不能被实例化,不能被继承;
静态类的内部就是一个抽象sealed密封类(不能被继承); 修饰属性:静态属性属于类, 不属于对象
修饰字段:静态字段属于类, 不属于对象修饰方法:静态方法属于类, 不属于对象修饰事件:静态事件属于类, 不属于对象
类加载的时候,所有的静态成员就会被创建在“静态存储区”里面,一旦创建直到程序退出,才会被回收。
静态成员跟对象无关,独立程序块;
当需要共享资源的时候可以使用static去修饰成员的访问方式:
类名.字段/属性/方法()/事件
const:常量,不可变,资源共享;
修饰字段:该字段不可以被修改,可以通过类名访问;
字段类型:基本数据类型,string,引用类型的变量的值只能是null
readonly:只读,表示该字段初始化后不能被修改;
主要是用于修饰字段,表示该字段是只读,该字段只能在创建的时候初始化或者构造函数中初始化;
sealed:密封的
修饰类:该类不能被继承
修饰方法,属性:防止被再次重写这个sealed只能修饰重写的成员;
struct 结 构 名 { private int age;
public int Age{get;set;} public void Move(){
}
//public 结构(){
//初始化所有成员,初始值都是用成员的默认值
}
}
结构跟类一样可以定义字段,属性,方法,事件;
结构本身内置一个无参构造函数,所以结构只能定义有参的构造函数; 定义构造函数就必须给里面所有的成员变量初始化;
结构既不能继承,也不能被继承; 结构可以不通过new去实例化对象: Goods g;
//初始化所有成员g.id=1;g.name="";g.price=1;g.num=2;
把一个结构的值赋给另一个结构变量其实就是在做数据复制;
enum 枚 举 { A,B,C,D,E,F,G
}
//在数组快速查找指定元素是否存在,存在返回下标,不存在返回-1 public int IndexOf(int[] arr,int value){
int startIndex=0;
int endIndex=arr.Length-1; while(endIndex-startIndex>0){
int midIndex=(startIndex+endIndex)/2; if(arr[midIndex]==value){
return midIndex;
}else if(arr[midIndex]>value){ endIndex=midIndex;
}else{
startIndex=midIndex;
}
}
return -1;
}