里式转换:子类可以赋值给父类,如果父类装的是子类对象,那么可以将这个父类强行转换为子类对象
哈希表:键值对集合 hashtable ht=new hashtanle ht.add(key:value)
MDI设计模式 设置某个窗体为父窗体,其余的子窗体的活动范围不能超出此范围
在做winform时,要学会看方法的图标,依据方法的提示进行操作
多线程:让计算机同时做多个事件 多线程的执行由cpu决定,单线程:当计算机做多个事情时,会出现假死状态
在.net环境下,不允许跨平台访问
线程被终止 之后,不能在被重启
如果线程执行的方法具有参数,那么这个参数必须是object类型
tcp(传输控制协议):安全稳定 效率低
udp(用户数据报协议):快速效率高 不稳定 容易发生数据丢失
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条tcp连接只能是点到点的,udp支持一对一,一对多,多对一和多对多的交互通信
5、tcp首部开销20个字节,udp首部开销较小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
path:GetFileName()方法:从路径字符串中得到文件名(带扩展名) GetFileNameWithoutExtension()方法,从路径字符串中得到文件名(不带扩展名)。 GetExtension()方法,从文件路径字符串中得到文件的扩展名。
file:create move delete copy readallbytes(可以读取所有类型的文本) readalllines readalltexts writeallbytes writealltexts appendalltext(不会被覆盖) writealllines
directory 操作文件夹的方法:createdirectory 创建文件夹 move 移动文件夹 delete(如果文件夹不为空,不能删除) 删除文件夹 exist 判断文件夹是否存在 getfiles 获取文件夹下所有文件的全路径 getdirectory 获取指定目录下所有文件夹的全路径 getfilename 获取路径下的文件名
public
private :当前类的内部访问 ,如果类没有声明修饰符,默认为private
internal:当前项目都可以访问
protected:当前类和当前类的子类都可以访问
protected internal
能够修饰类的的访问修饰符只有public和internal
常用的关键字:
this:当前类的对象 调用自己的构造函数
new
base:调用父类的成员
virtual 有virtual修饰的类,才能被其子类重写 (override)
abstract 无法实例化 抽象类下面的抽象属性必须是public 子类必须override抽象类中的所有抽象属性和抽象方法,如果没有全部override,那么子类必须是抽象类
override
interface
sealed:密封类不能被继承,但是可以继承其他类
return
break
partial:在c#中,不能定义相关相同的类,但是可以用partial修饰多个类,这些部分类共同构成一个完整的类
continue
struct
enum
静态类的方法、成员也必须是静态的
静态类的方法的调用:类名.方法名 非静态类的方法调用必须实例化才能调用
在父类中,如果有要重写的方法,需要用virtual修饰
虚方法的子类可以重写,也可以不冲写,但是如果用abstract修饰的方法,必须重写(抽象成员必须存在于抽象类中,但是抽象类中并不都是抽象成员 抽象类不能用static修饰)
抽象方法必须重写
在接口中,接口成员不能有修饰符,默认为public 使用接口的目的就是为了多态
抽象成员不能有任何实现
抽象类不能被实例化
directory<键,值> 键值对
toarray 将集合转换成数组
类和结构struct的区别:结构里面可以同时定义静态方法和非静态方法,类也可以
在类中,类的构造函数既可以给 字段赋值,也可以个属性赋值,构造函数时可以重载的
结构和类的相同点:本身都有一个默认的无参数的构造函数,不同的是,在类中写了一个新的无参数构造函数的时候,默认的构造函数就被覆盖了,结构不会
类中既可以给字段赋值,也能给属性赋值,结构必须只能给字段赋值,且必须给全部的字段赋值,而不能选择的给字段赋值
在结构中,用实例调用非静态函数,用结构名调用静态方法
如果我们只是单独的存储数据,我们推荐使用结构,因为结构是分配到栈上的
如果使用面向对象开发的话,推荐使用类,因为结构不具有面向对象的特征
单例模式:将构造函数私有化
提供一个静态方法,返回一个对象
XML 可扩展标记语言:严格出现大小写 成对出现
委托所指向的函数必须跟委托具有相同的签名(参数和返回值)
委托是一种数据类型,事件是对委托的封装(事件是一个对象) 加了一个event关键字
事件只能在类的内部触发,委托可以在任意位置触发
事件的注册只能用+=火或者-=来实现
反射:动态加载程序集,获取其方法、类型、属性等
隐式类型只能读取不能赋值,不能写方法