1、静态变量与非静态变量的区别
静态变量--static、直接类名+变量名、静态函数里不能用非静态变量。
访问同一类中所有实例同一静态变量都是同一值。非静态变量则不是。
2、const与readonly区别
常量,
const -- 不允许用static修饰,只能在生命是初始化,
readonly -- 可以在声明和函数中初始化。
3、extern与abstract 区别
extern -- 用于修饰引用来自外部的程序集的函数,通常和 DllImport和static 在一起。
abstract -- 与extern不能同时使用,
抽象,可以修饰 类,方法,属性,索引器,事件。
不能实例化。
4、override与overload区别
override 重写 方法名,修饰符,返回值,参数类型,参数个数,必须和基类一致。
overload 重载 只需 方法名一致即可。
5、public,protecte,internal,private 区别
public 无访问限制
protected 访问包含类或者包含类的派生类型
internal 访问包含当前程序集
private 仅限包含类
6、sealed
密封类,阻止继承类。
7、类与结构的区别
类 -- 引用类型 分配堆上的内存
结构 -- 不能被继承。
8、如何手工释放内存
GC 是.net 框架提供的计算机自动释放内存工作,
可以实现一个接口 (IDispose)。
9、string 与 stirngbuilder 的区别
string 每次计算都增加一个新的实例。stringbuilder则不会。
string 是引用类型,在堆上分配内存。
string 一旦生成就不可变,调用引用。
10、params
参数个数可变。
private void method (int a, params int[] aarys){}
11、 什么是反射?
动态调用,改变 属性(程序集)的值
12、remoting 和 webservice 的区别
remoting tcp/ip 传输,二进制传输更迅速,
webservice http传输/web引用。