C#,深入浅出全接触
目 录 表
一、什么是 C#?
二、Java 与 C#
三、C#的主要特征
四、安装运行环境
五、C#编辑器
六、C#的程序结构
七、C#和名称空间
八、C#中一个经典例程的编写与编译
九、C#编程实战演习 ABC
1、使用 Visual Studio .NET 编写 C#程序
2、使用 Visual C#创建 Windows 应用程序
3、创建 C#类库(Dll)
一、什么是 C#?
是由 开发的一种新型编程语言,由于它是从 和 中派生出来的,因此具有
的功能。同时,由于是 公司的产品,它又同 一样简单。对于 开发而言,
象 ,同时具有 的一些优点。 宣称:是开发 框架应用程序的最
好语言。
二、Java 与 C#
要学习 ,不能不首先看一看 语言。
相对于其他编程语音, 有一个无庸置疑的优点:用户以及编译器第一次不必了解生成可执行代码的
特定 细节。 引入了一个编译代码中间层,叫做字节代码,并使用一个虚拟抽象的机器,而不
是一个真实的机器。当 编译器结束了一个源文件的编译后,你所得到的不是可以立即在一个给定
平台上运行的代码,而是可以在任何真实的平台上运行的字节代码,唯一的条件就是这个平台要理解和
支持 。这些发展包含着一个文化的变革。作为一个开发人员,你只需要确定 虚拟机 提供
的抽象层,不同的 !" 销售商负责执行代码层,从而将中立于平台的字节代码映射到主机平台的机构中。
在这种情况下, 似乎是统一分布式计算机世界的领袖候选人了。“编写一次,永远运行”(并且无论
在哪里)一度成为 诱人但却真实的口号。
那么为什么说 只是“似乎”是一个好东西呢?跨平台理论的发展很好地证明了这一点。我们看到,将
代码从一个平台移植到另一个平台— 这个语言最重要和最受吹捧的特点—并不象宣传的那样
容易。任何 平台都有其自己的虚拟机,它可以理解通用的字节代码,并且及时地将其编译为本地
代码。矛盾由此产生,不同虚拟机的执行也很不相同,这一点足以使代码的移植比预期耗费多得多的时
间,而且基本上不是自动的。
那么, 模型的好处在哪里呢?首先, 是一种先进的、面向对象的语言,包含了预防常见错误
的内置功能,并在仅仅一两个对象中携带了许多经常需要用到的功能。与 相比, 更易于读写,
不容易出错,而且更加美观,但是它速度较慢也不太灵活。想实现在任何软件和硬件平台上都可虚拟移
植, 尽可能少地使用了公分母模型,也就是说放弃了将每个平台开发到极限的能力。第二,虚拟机
的概念本身就是可移植和可共用的,因此对于分布式环境来说是理想的。 对于为非 #$% 平台
开发代码是最好的语言。
那么对于 #$% 平台来说, 又怎么样呢?让 适应 #$% 是不可能的,这是由于 "&$
的许可约束问题。但是 实在是太吸引人了, 比谁都能更清楚这一点。因此,
又一次采取了“拿来主义”的手法,很好地利用了 的众多特性,隆重推出了 #$% 平台的新锐力
量,它就是相当简单但十分强大的面向对象的 编程语言。超过了 ,它天生就包含了 框
架类库中的所有类,并使语法简单化。
可以说, 具备的优点,都可以或者都将具备!
三、C#的主要特征
是 的关键性语言,它是整个 平台的基础。与 相比, 所支持的其它语言显然是配
角身份。比如, 的存在主要是对千万个 开发人员的负责。对于 " 和 $'%
也同样可以这么说,后者只是增加了调用 类的 语言。是唯一没有在设计思路中加
入了前辈语言某种遗传的新事物。
平台将 作为其固有语言,重温了许多 的技术规则。中也有一个虚拟机,叫做公用语言
运行环境() ,它的对象也具有同样的层次。但是 的设计意图是要使用全部的 #$*+,- 甚至更
多。由于 与 #$% 的体系结构相似,因此 很容易被开发人员所熟悉。
的目的是要拯救分布式计算世界,则不同。本质上是 的进化产物,使用了包括声明、
表达式及操作符在内的许多 特征,但是 还有更多的增强功能,比如类型安全(./")、
事件处理、碎片帐集、代码安全性等。在 中,除了可以使用许多 ,-,更能使用 类。特别地是,
我们可以处理 ! 的自动化和 类型的函数。
还让你调用无管理的代码,也就是在 () 引擎控制之外的代码。这种不安全的模式允许你操作原始
指针来读和写内置碎片帐集控制以外的内存。
四、安装运行环境
安装"0是在机器上运行 的第一步。"0可以安装在 #$%、#$%
或 #$%+111 上,但是最好的选择是 #$%+111 上。选择了操作系统后,再执行以
下步骤:
安装 -22
安装 345"0。它是免费的,可以从以下站点下载
345"0
完成以上安装后,就可以在任何文本编辑器中编写代码了,最后保存为扩展名为 的文件。
五、C# 编辑器
编写 程序可以在文本编辑器中进行,或者在集成开发环境 &"&% 中进行。市场上还有
一些第三方编辑器,其中一些是免费的。更多信息请查看这里。
六、C#的程序结构
一个 程序包含一个类,这个类中至少有一个公用的静态方法 $,这个方法对程序进行初始化并终
止程序。在 $ 方法中创建子对象、执行方法并实现软件的逻辑处理。下面是一个典型的微型 例
程:
&$'".46
.3,
7
$$"$'89'
7
".4$#($:;: 6
&$<6
=
=
在 中,要使用下面的声明来引入外部定义,而不是用象 中的$&%:
&$'".46
&$'".46
然后,使用 编译器 > 编译代码。假定将前面的代码保存为文件 ,使用以下命令:
结果就生成了 >,它向控制台输出窗口写入信息 :;:。
尽管编译后的结果文件包含> 后缀,但 > 却不是一个真正的、明确的 代码段。实际上,
它包含了 字节代码。当启动 > 时,()将提取编译器写入代码中的重要元数据。接着,
一个叫做 &/-$/4编译器的模块将代码映射到特定的 中,开始实际的执行过程。
七、C# 和名称空间
实际中的 程序通常包含多个文件,其中每个文件都可以包含一个或多个名称空间。一个名称空间就
是一个名字,它向编译器描绘出一些软件实体,如类、界面、枚举以及嵌入的名称空间。名称空间和数
据类型一样必须有唯一的名称。在一个 程序中,可以通过一个元素的完整资格名称来识别它,这个
资格名称表明出层次关系。例如,".4"$' 是 "$' 类型完整的资格名称。但是为了简化
代码起见,只要声明正在使用 ".4 名称空间:
&$'".46
就可以使用一个相对名称如 "$' 来作为完整名称的同义词,而最后依然代表 ".4"$'。
通过使用 $4 关键字,我们还可以将 程序或者类包裹在自身的名称空间中,比如:
$4.!$
7
&$'".46 ??"$'
.3,
7
$$"$'89'
7
".4$#($:;: 6
&$<6
=
=
=
名称空间 .!$是全局名称空间的一部分。调用它不需要再使用前缀,因为其完整资格名称就是简单
的 .!$。定义一个名称空间是保持公共名称唯一性的一个途径。实际上,如果两个类的名称发生冲
突,但只要它们分别属于不同的名称空间,两个类仍然是各自唯一的。
八、C#中一个经典例程的编写与编译
1、编写代码
@;#%A几乎是学习任何一门编程语言都要涉及的第一个例程。下面也让我们用 完成这个工
作。在上面提到的任意一个 编辑器中(比如写字板),键入以下代码:
&$'".46
.B
7
B%$ 7
BB$#($:;#%C: 6
B=
=
B
然后保存为文件 4.。
2、编译程序
注意:编译器要要求至少一个自变量,比如文件名。假设你的 文件名是 4.,现
在用命令行程序 > 来编译上面的 4. 文件:
4.
于是,编译器在工程文件的 $目录下生成了一个 4.> 文件。运行这个 >,看输
出是什么。
3、代码含义
下面我们逐行看看这些代码的含义:
程序的第一行是 &$'".4。为什么要 &$'".4 呢D因为 ".4 是存储系统类的名称
空间,程序中用来在控制台上显示输出的 $(控制台)类就是在 ".4名称空间中定义
的。
评论0