当前位置:文档之家› C#入门经典教程

C#入门经典教程


通用语言运行时CLR
.NET 源 代码
语言 编译器
MSIL + 元数据
CLR
机器 代码
代码 被执行
管理内存 易于设计组件和应用程 序,其对象可以跨语言 互动 跨语言集成(特别 是跨语言继承)
JIT 编译器:一次编译,就可 运行在支持运行库的任何 CPU 和操作系统上
.NET的语言互操作性:
不同语言编写的代码可互相调用
第一个 C#程序 :HelloWorld
第 1 行: 1: using System;
using 关键字 用来引用.NET框架类库中的资源 通常在程序文件的开头使用 如果程序中需要多种资源,可以使用多次using System 命名空间 System命名空间提供了构建应用程序所需的系统统能的访 问
client.exe
清单 元数据 中间语言 清单 元数据 中间语言
client.exe
清单 元数据 中间语言
clientlib.dll
元数据 中间语言
client.exe
module
IL语言范例
IL_0000: IL_0001: IL_0006: IL_0007: IL_0008: IL_000d: IL_000e: IL_000f: IL_0015: IL_001a: IL_001f: IL_0020: IL_0025: IL_002a: IL_002b: IL_0030: nop call nop ldc.i4.0 call nop ldnull ldftn newobj call nop newobj call nop newobj throw
对象 类 接口 数组 引用类型 基本类型 结构 枚举 值类型
CLS、CTS 和 MSIL 紧密配合以实现语言互操作性
4 命名空间
命名空间就像在文件系统中一个文件夹容纳多 个文件一样,可以看作某些类的一个容器。通 过把类放入命名空间可以把相关的类组织起来, 并且可以避免命名冲突。命名空间既用作程序 的“内部”组织系统,也用作“外部”组织系 统(一种向其他程序公开自己拥有的程序元素 的方法) 使用命名空间:using 类似#include
ZJWCHC
第2章
C#语言基础
目标
在C#中定义变量和常量 使用C#中的基本数据类型 理解装箱和拆箱的概念 使用C#中的运算符,选择结构和循环结构 定义和使用数组,了解结构和枚举 了解C#中的预处理指令 理解C#中常用的字符串处理方法
第一个 C#程序 :HelloWorld
HelloWorld.cs 1. 2. 3. 4. 5. 6. 7. 8. using System; class HelloWorld { static void Main( ) { Console.WriteLine(―Hello, World!‖); } }
System.Collections 包含定义各种对象集的接口和类
5 创建“Hello World”应用程序
单击“开始”“程序”“Microsoft Visual Studio .NET 2005”“Microsoft Visual Studio .NET 2005” 此时将打开 2005 的起始页 要创建 C# 控制台应用程序,请从列表中选择 “创 建建”“项目”。此时将打开“新建项目”窗口 选择“Visual C# 项目”作为项目类型,选择“控 制台应用程序”作为模板
C#的平台移植性:
框架 JIT编译器(Just In Time, 即时编译器)
3 .NET Framework 简介
.NET Framework类似于JVM .NET Framework 两个主要组件: 通用语言运行时 (CLR) 统一的类库集 .NET的类库: 线程 文件输入/输出 (I/O) 数据库支持 XML 解析 数据结构……
第1章 C#与NET平台介绍 本章目标
了解.NET Framework 的结构 理解.NET Framework 的基本概念
CLR JIT CTS MSIL
了解 .NET Framework 命名空间 了解C#程序的基本结构
1 C#语言的由来
在过去的二十年里,C和C++已经成为在商业软件的开发领域中 使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过 同时也牺牲了一定的开发效率。与VB等语言相比,同等级别的 C/C++应用程序往往需要更长时间来开发。由于C/C++语言的 复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与 效率之间找到一个更为理想的权衡点。 VB以牺牲灵活性的代价来提高效率。可是这些灵活性正是 C/C++程序员所需要的。这些解决方案对编程人员的限制过多 (如屏蔽一些底层代码控制的机制),所提供的功能难以令人满 意。这些语言无法方便地同早先的系统交互,也无法很好地和当 前的网络编程相结合。
1.H class A { … }
3.cpp #include “1.h” #include “2.h” ….
2.H class A { … }
3.cpp class A { … } class A { … } …
namespace a1 {
class A { … }
namespace a2 {
.NET 源 代码 语言 编译器
MSIL
MSIL + 元数据
CLR
机器 代码
代码 被执行
帮助语言实现互 操作 IL 不是字节代码,但很接 近字节代码。因此,执行 应用程序时,IL 到机器码 的转换速度非常快!
通过 CLR将 MSIL 转换为具体 CPU 的 代码 CPU 无关的指令集
程序集
清单 元数据 中间语言
2 .NET代码的编译 语言特定的编译器和运行库
VB 编译器 可执行 代码
R U N T I M E R U N T I M E
代码 被执行
C++
编译器
可执行 代码
Intermediate Language Common Language Runtime
IL 和 CLR 的使用
VB 编译器 可执行 代码 IL 编译器
第 4,5,7 行: 4: 5: 7: static void Main( ) { ……….. } Main 方法
Main 方法是应用程序的入口点,编译器将由该处开始执行 程序 方法体也放在一对{ }中 每个C#的应用程序都必须包含Main方法
IO, DrawR)
操作系统
CLS和CTS
通用语言规范 CLS Common Language Specification 规定所有 .NET 语言都应 遵循的规则 生成可与其他语言互操作 的应用程序 通用类型系统 (Common Type System, CTS) 包含标准数据类型 包含准则集
class A { … }
}
}
3.cs using a1; using a2; a1.A a2.A
常用命名空间
命名空间
System.Drawing System.Data System.IO System.Windows System.Reflection System.Threading
说明
处理图形和绘图,包括打印 处理数据存取和管理,在定义 技术中扮 演重要角色 管理对文件和流的同步和异步访问 处理基于窗体的窗口的创建 包含从程序集读取元数据的类 包含用于多线程编程的类
对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时 又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保 持同步并且能和已有的应用程序良好整合的环境。另外,一些 C/C++开发人员还需要在必要的时候进行一些底层的编程。 C# (C sharp) 是对这一问题的解决方案。C#是一种新的、面向对 象的编程语言。它使得程序员可以快速地编写各种基于 Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的 工具和服务来最大程度地开发利用计算与通讯领域。
第一个 C# 程序 :HelloWorld
第 2,3,8 行: 2: 3: 8:
类 在C#或其他面向对象语言中,需要编写类 使用关键字class定义一个类,类的内容放在一对 { }中 示例中定义了一个名为HelloWorld的类
class HelloWorld { ……….. }
第一个 C# 程序 :HelloWorld
.NET Framework 的体系结构
VB C++ C# JScript … Visual Studio .NET
通用语言规范(CLS) XML Web services
.Net Framework 类 库 (FCL)
Web Forms Windows Forms
Data and XML Base Class Library:
C#语言的特点:
C#语言是Microsoft发布的一种全新的编程语言,是 其.Net战略的一枚重要棋子。 C#语言是面向对象的、现代的编程语言,用C#编写的应 用程序可以充分利用.Net的框架体系带来的优点.既可以 用来编写基于通用网络协议的Internet服务软件,也可以 编写各种数据库、网络服务应用程序和Windows窗口界 面程序。 C#继承了C/C++的优点和灵活性,能够充分利用OS系 统的底层功能,同时又具备了完全的面向对象特性。可以 让初学者直接了解面向对象编程的各种概念,学习现代的 编程思想和手段。
C# 模板
输出
Console.WriteLine("Hello World");
“Hello World‖应用程序文件
HelloWorld.csproj AssemblyInfo.cs Program.cs
相关主题