一、异常措置惩罚惩罚机制
编写的措施在编译不报错之后并不是就不会堕落了,在运行时由于逻辑问题或者另外原因还是可能呈现各类异常,异常措置惩罚惩罚机制就是为了措置惩罚惩罚这种情况。异常措置惩罚惩罚中需要用到三个关键字,try、catch、finally。此中try下的大括号内写可能呈现异常的代码块,catch下的大括号写异常的措置惩罚惩罚方法(catch需要有输入参数,参数就是异常类,在不确定异常种类时可以用Exception类,因为这是所有异常类的父类),finally下大括号写可能异常的代码块运行结束后的代码,好比释放空间等,写在finally外则在呈现异常时不会运行,必需写在finally内。还有一个关键字是throw,用于抛出异常。一个try可以有多个catch,会按照异常类型的设置跳入到相应的catch内,类似于重载。异常措置惩罚惩罚户占用大量的系统资源,要尽量减少。
二、I/O操纵
I/O操纵是指文件读写或者是硬盘上的读写,相关的有文件的读写,路径的操纵和文件夹的操纵。常用的类有File和Directory两个静态类,File用于查抄文件(夹)是否存在、复制、 移动、 重定名、 创建、 打开、 删除和一次打开单一文件等操纵,Directory用于通过目录和子目录进行创建、移动和枚举等操纵。如果要创建实体类,则要用到FileInfo和DirectoryInfo这两个实体类,FileInfo类供给创建、复制、删除、移动和打开文件的实例要领,并且可以辅佐创建FileSteam东西,DirectoryInfo类用于创建、移动和枚举目录和子目录的实例要领。写文件时有两种方法,一种是先成立FileStream类,界说文件的文件名和操纵,使用BinaryWriter类实例化一个要领,来进行写入,具体代码如下:
FileStream fs=new FileSteam(FileName,FileMode.Create);
BinaryWrite w=new BinaryWrite(fs);
w.Write("a");
w.close();
fs.close();
另一个要领就是使用StreamWrite要领成立实体类,使用类下的要领Write和WriteLine写入,具体实现如下:
StreamWrite w=File.AppendText("FileName.txt");
w.WriteLine("Hello");
w.Flush();
读操纵类似于写操纵,只是使用的类是FileReader,使用的要领是ReadLine,具体实现类似于写操纵。
三、索引器
Indexer索引器可以让class想数组一样访谒每个元素,相当于重写了一个实体类的this要领,所以索引器必需使用this定名。索引器包孕get和set要领,实现如下:
public string this[int index]
{
get
{
string tmp;
if(index>=0&&index<=nameList.Length-1)
{
tmp=nameList[index];
}
else{
tmp="";
}
return tmp;
}
set
{
if(index>=0&&index<=nameList.Length-1)
{
nameList[index]=value;
}
}
}
在main函数中,挪用成立实力类数组的要领后,就可以默认的使用索引器进行读写操纵。索引器中不强制规定索引类型和返回值类型,差此外索引器可以通过转变索引类型的要领重载,类似于要领的重载,输入参数数目的转变也可以重载(用于多维数组)。
索引器还可以应用于接口,在接口中索引器的get和set不需要写具体实现,在担任他的class中再实现具体要领
四、委托
委托相当于一个函数指针,需要在main函数外声明,声明格局为:delegate 返回值类型 委托名(参数类型 参数名)。然后再main函数中对委托实例化,直接使用委托名new一个新的实例化东西,在new时要代入切合委托界说时的参数类型的要领(要领写在main外,可以使用静态要领或者实例化的要领),然后使用实例化的委托实现要领。使用静态要领时,实例化委托时可以直接挪用要领,使用实例化要领内的委托时,要先成立实例化东西的实例,然后挪用委托,挪用时参数写:实例名.要领。同一个委托可以挪用多个要领。使用委托可以实现多重委托(Multi-casting delegatte),使用+或者-将多个委托连接后赋值一个新的委托,新的委托会凭据添加挨次挨次执行每个委托,-的时候不必严格凭据添加挨次,会按照添加挨次打消最后一个添加的该委托,-一个不存在于列表的委托不会造成任何影响。
五、事件
常用语图形化交互界面中,用于通知措施产生了一些事件(好比鼠标点击,键盘输入等),便与措施下一步执行。事件编写在Windows Forms Application而不是Console Application。使用工具箱内的工具可以便利的添加各类成果,双击就可以编写依存于添加按钮或者框体的事件。使用控制台编写时事件和委托要一起定名,先界说委托,界说事件时,要在事件名之前插手委托名,暗示该事件可以触发这个委托。使用event关键字定名事件,在main函数中通过+=将具体的委托绑定到事件上。event可以被担任,也可以在interface的实现类里实现。事件内要写实现类,来判断事件是否绑定了委托,非空则执行。与事件绑定的委托保举的写法是: