C#学习笔记

来源:互联网 发布:直播变声器软件 编辑:程序博客网 时间:2024/05/23 14:34

把一下基类实例函数声明为virtual,该函数就可以在任何派生类中重写,派生类用override关键字,成员字段和静态函数不能声明为virtual,其原因是虚成员必须有一个签名,必须与特定的对象相关,满足这两个要求的成员只有实例函数.

方法的隐藏:如果派生类声音一方法,不知基类是否有同名(可能以后升级添加)方法,为保障程序的正确性,C#采用new关键字声明我们要隐藏一个方法.

抽象类和抽象函数:将类和函数声明为abstract,抽象类不能实例化,而抽象函数没有执行代码,必须在非抽象的派生类中重写.

C#允许把类和方法声明为sealed,对于类来说,这表示不能继承该类,对于方法而言,这表示不能重写该方法.

访问修饰符: C#不允许给get和set访问器设置不同的访问修饰符,如果有一个属性需要读取的公共访问权限,但要限制对派生类的写入访问,此时欠希望使用不同的访问修饰符.

接口:接口在语法上同申明抽象类完全相同,但不允许提供接口中任何成员的执行方式,接口中唯一可以包含的方法、属性、索引器和事件声明。不能实例化、不能有构造函数、不允许运算符重载、不允许声明成员的修饰符,接口成员都是公共的,不能声音为虚拟或静态。

Close()和Disose()之间的区别大体上是一个约定。Close()主要用于指定资源以后会再次打开,而Dispose()是一种最终处理,调节器用后意味着客户机代码最终科会删除这个对像,可以执行两个方法中的一个,但为了避免让其他开发要员感迷惑,应有执行这两个方法时,记住它们的定义。

委托定义的位置,可以在类中定义也可以在类外定义,甚至在命名空间下定义。委托的定义告诉编译器这种类型代表了哪种类型的方法,然后创建该委托实例。

DllImport 属性用于把方法标记为部地DLL中定义,而不是在任何装配件中定义。

在定义指针时,C++是符号同变量一起,而在C#是符号与类型在一起。 

原创粉丝点击