Switch()括号中可以是int ,char和string ,switch语句中的case语句冒号后什么都不写,可以不写break,其他情况一定要写break,否则报错
数组:五种声明方式
int []array;
array = new int[2];
//第二种声明方式
int []array1 = new int[2];
//第三种声明方式
int []array2 = {1,2,3};
//第四种声明方式
int []array3 = new int[]{1,2,3};
//第五种声明方式
int []array4 = new int[3]{1,2,3};
//数组大小也可以是变量
int count = 3;
int []arr = new int[count];
virtual关键字:C#中,子类要重写父类的方法,必须把父类的方法标识为virtual(虚拟的),同时重写方法用override修饰
new 关键字:new关键字:在子类中定义的一个和父类方法签名一样,但是个全新的方法。并非重写父类的方法。
base关键字:用base关键字调用父类的方法
访问修饰符:
public 公有的,
internal 在一个项目中的,
protected有父子关系的类,
private仅所属类的成员
注意:如果有一个类既继承类又实现接口,类名要写在接口名前面。
属性:访问修饰一般为public,首字母大写。属性内有get和set访问器,get内必须要有return,set内有value关键字,代表从外部接受的值。
索引器:索引器的作用:像处理数组一样去处理类的对象。
public class Student
{
private string []obj=new string[10];
//this关键字在这里代表每一个类的对象,[]中整数是指通过下标访问
public string this[int index] //此是可以通过索引号去访问每一个类的成员
{
get
{
return obj[index];
}
set
{
if(value!=null)
obj[index]=value;
}
}
static void Main(string []args)
{
Student stucollection=new Student();
stucollection[0]="柯南";
stucollection[1]="小五郎";
stucollection[5]="怪盗基德";
}
}
委托:相当于函数指针,可使程序在运行是再指定具体要运行的方法。
(1) 定义委托:Public delegate int Call()
(2) 实例化委托:objcall=new Call(方法名)
(3) 调用委托:objcall();
事件:事件实际上是一种特殊的委托,委托每次只能指向一个方法,而事件可以指向多个方法
(1)定义一个委托public delegate void delegateMe();
(2)定义一个事件 private event delegate eventMe;
(3)订阅事件 eventMe+=new delegateMe(方法名1());
eventMe+=new delegateMe(方法名2());
(4) 引发事件 if(condition) then eventMe();
创建线程实例:
Thread obj=new Thread(new ThreadStart(方法名称))
开始:Start();
休眠:Sleep();
终止:Abort();
挂起:Suspend();
恢复:Resume();
当前线程:Thread.CurrentThread
ThreadPriority枚举值用来指定调度线程的优先级(共5级)
lock关键字
C#中通过lock关键字提供同步
线程同步:确保不同的线程对共享资源进行访问时,每次只有一个线程访问资源。
Lock(this)
{
For(int i=0;i<10;i++)
{
//语句;
}
}
数组集合对象
Array: Array和数组很相似,还可以相互转化和拷贝,很多方法都是是通用, 可以用Array的静态方法对数组实现反转,排序,这是数组本身无法做到的
using system.Array;
Array ar=Array.CreateInstance(typeof(int),5); //创建一个Array的实例
ar.SetValue(12,0); //赋值
Array.Reverse(ar); // 反转
Array.Sort(ar); // 排序
ArrayList:最常用的集合之一.集合的好处是在不知道数据大小时,可以实现容量自动增长,而数组做不到.
Add()添加元素
Remove(位置)移除元素
ArrayList al=new ArrayList();
//如果要遍历集合元素,
//方法一:
//将集合中的数拷贝到数组中
object []temp=al.ToArray();
foreach(object t in temp)
{
Console.WriteLine(t);
}
//方法二,使用迭代器
IEnumerator ie=al.GetEnumerator();
while(ie.MoveNext())
{
Console.WriteLine(ie.Current);
}
HashTable:以键值对的形式保存值
Hashtable hash=new Hashtable(4);
hash.Add("中国",1860);
hash.Add("德国",1940);
Console.WriteLine(hash["中国"].ToString());通过key获得value
SortedList :是 Hashtable 和 Array 的混合
能存放键值对,类似Hashtable
能通过自身提供的方法通过索引直接遍历,类似于Array
objsortlist.GetKey(i) 方法获得键
objsortlist.GetByIndex(i)方法获得值