C#笔记1

来源:互联网 发布:js中的substring 编辑:程序博客网 时间:2024/05/23 13:26

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,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。

原创粉丝点击