1、密闭类,将类声明为sealed以后,这个类就不能被继承了。比如:不能编写一个从String或者int32继承的类,因为他们是密闭的(常考)安全考虑。
2、部分类(partial class),C#中可以将一个类定义在多个cs文件中,求合体。比如WinForm窗体类,这主要用在代码生成的场合,将生成的代码放到一个cs文件中,另外一个cs文件允许用户修改,既保证生成代码不被乱改,也能保证用户自己修改自己的代码。只要在类标注partial即可。ASP.Net的CodeBehind是怎么回事(面试题)。
3、int/Int32、string/String、bool/Boolean的关系,Int32、String、Boolean都是.net中的类,int、string、bool只是C#对那些类型的一个别名而已(不严谨),最终仍然会编译成那些.Net类型。拆箱(unboxing)、装箱(boxing)。(常考)VB.Net中也有一些自己的别名(Integer),也会编译成对应的.net类型。CTS(Common Type System)
4、子类访问级别不能比父类高:
class Person{}public class Chinese : Person{}
public static void Hello(Person p) //要癮求ó别纄人?给?你?一?个?人?家ò给?不?了?的?对?象ó,?肯?定¨不?行D!?要癮讲2理え!?
private class Person
5、extern、PInvoke,调用win32 API、调用其他语言编写的dll中的方法。
[DllImport("kernel32.dll")] static extern uint GetCurrentProcessId();
可以用来实现“C#调用C/C++代码”
6、对象初始化器:
Person p1 = new Person() { Name="tom",Age=20};
不是构造函数,只是简化了对新建对象的赋值,在给对象赋值的时候对象已经被创建了,而构造函数中则是对象正在创建。(不放在*中)
7、Person2 p2 = new Person2() { Name="john", Age=50};//掌握这种方法即可。