《C#技术内幕》学习笔记--类和结构
原创
©著作权归作者所有:来自51CTO博客作者dking94的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、类定义
C#类的定义语法和C++类似,有一个区别就是:类定义结束时的分号。在C++中定义类结束后,必须在结束的大括号后加分号,否则将无法编译;而C#中,这个分号是可选的,即下面两个类定义是一样的:
class MyClass
{
//Members
}
class MyClass
{
//Members
};
二、访问修饰符
C#有四种访问修饰符:public,protected,private,internal。前三种和C++的修饰符意义基本相同,而internal 的意义是此成员只在当前编译单元中可见,即internal修饰符根据代码所在位置而不是类层次结构的位置决定可见性。
与C++不同,每个成员必须指定访问修饰符,否则默认为private。例如下面的C++类:
class MyClass
{
public:
int a;
int b;
int c;
protected:
int d;
int e;
};
在C#中实现相同目标,应该是:
Class MyClass
{
public int a;
public int b;
public int c;
protected int d;
protected int e;
}
三、Main方法
Main方法必须定义为静态(注意:Main,M大写)。Main方法可以由命令行参数,可以有返回值,也可以定义多个含有Main方法的类,只是编译时可以使用编译开关指定编译哪个Main方法。例如编译命令:
csc test.cs /main:Main1
四、构造函数
构造函数形式与C++一样,不能有返回值。但在声名对象时是有区别的。
例如:已定义类MyClass,
在C++中: MyClass mc;//声明对象mc并在栈上分配空间
MyClass mc = new MyClass();//在堆上声明mc
而在C#中:MyClass mc;声明mc,并不分配空间,并没有真正实例化。要实例化可以如下:
MyClass mc = new MyClass();
或者:
MyClass mc;
mc = new MyClass();
五、静态成员
和C++类似。
六、构造函数初始化表
在构造函数初始化表中可以使用base(...)和this(...)来指定调用哪个类的哪个构造函数。
七、常量与只读字段
关于常量:
(1)常量成员的值是在编译时设置的;
(2)常量成员的值必须指定;
只读字段:常量必须事先指定,而有些量可能只是在运行时才能确定,而且一旦确定不能被改变,所以有readonly字段。
C#允许定义静态构造函数,用来初始化静态、只读等变量。
八、继承
C#不允许多重继承,只能使用接口达到此目的。
九、C#的结构
首先结构是值类型,而非引用类型。因此一旦声明就立刻分配空间。
结构不可以有无参数的构造函数。
上一篇:CPU和内存的搭配
下一篇:《C#技术内幕》学习笔记--方法
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
读书笔记——WebKit技术内幕 HTML结构
渲染引擎主要包括HTML解释器、CSS解释器、布局和JavaScript引擎、绘图模块等。HTML解释器解释HTML文本的解释器,主要作用是将HTML文本解释成DO
WebKit css html javascript