1.如果两个namespace中定义了两个同名的类,那么引用的时候必须用命名空间的名字点起来,也可使用别名,如:
namespace A
{
using B;
using C;
using Class1B = B.Class1;
using Class1C = C.Class1;
}
这种声明只在本namespace中有效。
2.如果在本namespace中声明的元素名和用using引用的namespace中的元素名冲突了,那么本namespace中的元素名优先,其他隐藏。
3.string 用[ ]访问一个char,但是不可以改变这个char的值。
4.类只能单继承,接口可以多继承。
5.struct不能包含无参的显式构造函数,编译器会默认生成这样的函数,初始化struct内各个成员(用编译器的默认值)
6.程序从静态的main()函数开始执行,必须是static。
7.private的static方法在外部也无法引用到(和c++一样),但main()可以是private的。
8.引用类型实值在堆上,由垃圾回收机制回收或手动回收,它在堆栈放一个索引指向实值,值类型在堆栈上,操作实值变量就是操作操作堆栈上的变量本身。
9.引用类型:class,Interface,string,array,delegate,值类型:emun,struct
10.namespace下可放enum,struct,class,不可以放普通类型定义。
11.sealed用于修饰一个类不可以被继承,不可和abstract联用。
sealed class SealedClass { public int x; public int y; }
12.没有在namespace中的元素在全局域中,本项目的任何地方(可以是不同文件)都可以直接访问。
13.声明一个已经存在的namespace当作在已存在的namespace中加入新的元素,其中的成员的互相直接访问性相当于同一个namespace。
14.对于结构体,不像类那样存在继承。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是结构可实现接口,其方式同类完全一样。
15.如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。