C#不可以在同一个类中覆盖一个函数
ArrayList:动态数组
接口是一个抽象类,只有公共抽象方法。这些方法只有声明没有定义。这些抽象方法必须在继承的类中实现。
抽象类:使用abstract修饰,在类中没有包含足够的信息来描绘一个具体的对象的类,其无法实例化,存在的意义是被继承,当被继承后就可以利用抽象类实现多态。
序列化:如果要通过网络传输对象,则必须将对象转换为字节流。将对象转换为字节流的过程称为序列化。
C#中的早期绑定和后期绑定:早期绑定被称为编译时多态,后期绑定被称为运行时多态。
多态:三大功能:继承,重写,父类指向子类对象。
委托:C#中是没有指针的,所以C# 中的委托是一个保存对方法的引用的对象。它就像 C++ 中的函数指针。
哈希表是键/值对的集合。它包含基于键的值。
反射:通过反射可以获取到程序集中的信息,在只知道一个对象的外部而不了解内部结构的情况下,可以知道这个对象的内部实现,允许我们在运行时获取对象的元数据和程序集。
C#中可以继承多个接口。
继承是从一个已经存在的类中派生出来的新类。
装箱和拆箱:
1.变量值类型隐式转换为引用类型成为装箱,例如integer到object的类型转换。
integer:包装数据类型;object:所有类的父类
2.引用类型变量转换回值类型成为拆箱。
封装:信息隐藏,包装数据和功能成为一个单元(称为类),保留对外接口与外部联系。其他对象只能通过外面已授权操作来交互。用户无需知晓内部细节,可通过对外接口来访问该对象。
C#不支持多重继承,若想实现可通过接口实现。
方法重写和方法重载的区别:
重写改变了派生类中方法的行为。重载只涉及类中另一个同名的方法。
结构和类的区别:
结构是值类型,类是引用类型。
结构不支持继承,而类支持继承。
类和接口的区别:
类(Class)是对象的逻辑表示。它是数据集合和相关子过程的定义。
接口(Interface)也是一个类,包含没有任何方法体定义的方法。类不支持多重继承,但是接口支持。
值类型和引用类型区别:
值类型存储在堆栈中。
例如: bool, byte, double, enum, float, int, long, short,。
引用类型存储在托管堆中。
例如: class, interface, object, string。
C#缓存的种类:
有三种类型的缓存:
输出缓存(Output Caching):存储asp.net页面的应答信息。
片段缓存(Fragment Caching):仅缓存/存储部分页面内容(用户控制)。
数据缓存(Data Caching):为了性能通过编程的方式来缓存对象。