20120823
发布日期:2022-03-02 13:24:01 浏览次数:45 分类:技术文章

本文共 1372 字,大约阅读时间需要 4 分钟。

C#学习笔记

第一章 概述(编译原理及过程)

通用语言运行环境(公共语言运行库CLR):凡是符合公共语言规范(CLS)的语言开发都能在上面运行。

.NET应用程序运行过程:编译为中间语言MSIL(其定义一系列与CPU类型无关指令集)->CLR的另一个编译器JIT将MSIL语言翻译为机器语言。 面向CLR语言为托管代码。

C#中面向对象的实现:封装、继承(单继承,通过接口间接多继承)和多态(由于不支持指针,其通过类继承过程中的方法重写和方法调用时的动态绑定实现);

类:类的析构函数,在C#中不能显示的调用,它是被垃圾收集器撤销不被使用的对象时自动调用的。

C#语言的数据类型可以分为三种:值类型,引用类型,指针类型,指针类型仅用于非安全代码中。

在C#语言中,值类型变量存储的是数据类型所代表的实际数据,值类型变量的值(或实例)存储在栈(Stack)中,赋值语句是传递变量的值。引用类型(例如类就是引用类型)的实例,也叫对象,不存在栈中,而存储在可管理堆(Managed Heap)中,堆实际上是计算机系统中的空闲内存。引用类型变量的值存储在栈(Stack)中,但存储的不是引用类型对象,而是存储引用类型对象的引用,即地址,和指针所代表的地址不同,引用所代表的地址不能被修改,也不能转换为其它类型地址,它是引用型变量,只能引用指定类对象,引用类型变量赋值语句是传递对象的地址。

C#中值类型:简单、结构和枚举;

简单类型:数值型(整形、字符、浮点和十进制)和布尔型;

结构类型:和类一样,可以声明构造函数、数据成员、方法、属性等。结构和类的最根本的区别是结构是值类型,类是引用类型。和类不同,结构不能从另外一个结构或者类派生,本身也不能被继承,因此不能定义抽象结构,结构成员也不能被访问权限控制字protected修饰,也不能用virtual和abstract修饰结构方法。没有析构函数,但是能够继承接口。

溢出检测:checked和unchecked

类的继承:

派生类声明与基类完全相同的函数的时候(复写基类函数)要添加关键词new(不添也会覆盖基类同名函数,但是会发出警告),override是多态中对虚函数(abstract)的关键词;

在派生类中访问基类的成员是可以用base修饰符进行处理。Base有两种方式:base()【构造基类】和base.成员()【访问成员】两种。

类的成员包括以下类型:

l 局部变量:在for、switch等语句中和类方法中定义的变量,只在指定范围内有效。

l 字段:即类中的变量或常量,包括静态字段、实例字段、常量和只读字段。

l 方法成员:包括静态方法和实例方法。

l 属性:按属性指定的get方法和Set方法对字段进行读写。属性本质上是方法。

l 事件:代表事件本身,同时联系事件和事件处理函数。

l 索引指示器:允许象使用数组那样访问类中的数据成员。

l 操作符重载:采用重载操作符的方法定义类中特有的操作。

l 构造函数和析构函数。

Sealed修饰符--密封,防止继承对其进行修改;如果修饰一个类则不能对该类作为基类,如果修饰方法,在派生类中不能进行覆盖;

转载于:https://www.cnblogs.com/Caius/archive/2012/08/31/2664777.html

转载地址:https://blog.csdn.net/anqingxun0615/article/details/101368125 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:20120903
下一篇:20120825

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月16日 09时57分17秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章