目录

  • 1 项目一 设计贪吃蛇游戏界面
    • 1.1 任务一 分析贪吃蛇游戏需求(DV)
    • 1.2 任务二 学习C#入门知识(D)
    • 1.3 任务三 编写控制台应用程序(V)
    • 1.4 任务四 编写窗体应用程序(V)
    • 1.5 任务五 项目实训
    • 1.6 习题一
  • 2 项目二 实现随机画图
    • 2.1 任务一了解目标和内容
    • 2.2 任务二 学习C#语言的数据类型(D)
    • 2.3 任务三 学习C#语言的运算符和表达式(V)
    • 2.4 任务四 学习GDI+初步(V)
    • 2.5 任务五 项目实训
    • 2.6 习题二
  • 3 项目三 绘画游戏图形元素
    • 3.1 任务一 了解学习目标和项目内容
    • 3.2 任务二 学习顺序与选择结构(D)
    • 3.3 任务三 学习选择结构的窗体应用(V)
    • 3.4 任务四 学习while和do-while循环
    • 3.5 任务五 学习for循环(V)
    • 3.6 任务六 项目实训(V)
    • 3.7 习题三
  • 4 项目四 用方法升级游戏程序
    • 4.1 任务一 了解学习目标和项目内容
    • 4.2 任务二 学习方法的定义与调用(DV)
    • 4.3 任务三 学习方法的嵌套调用(V)
    • 4.4 任务四 学习方法的递归调用(DV)
    • 4.5 任务五 学习方法的参数(V)
    • 4.6 任务六 学习方法重载
    • 4.7 任务七 项目实训(V)
    • 4.8 习题四
  • 5 项目五 用类升级贪吃蛇游戏
    • 5.1 任务一 了解学习目标和项目内容
    • 5.2 任务二 学习面向对象基本概念(D)
    • 5.3 任务三 学习类和对象(V)
    • 5.4 任务四 学习类的静态成员
    • 5.5 任务五 掌握构造函数与析构函数
    • 5.6 任务六 学习对象作参数与返回值为对象(V)
    • 5.7 任务七 项目实训(V)
    • 5.8 习题五
  • 6 项目六 用继承实现同形不同质的物体
    • 6.1 任务一 了解学习目标和项目内容
    • 6.2 任务二 学习基类和派生类(DV)
    • 6.3 任务三 学习派生类构造函数(V)
    • 6.4 任务四 掌握从派生类中隐藏基类成员
    • 6.5 任务五 学习密封类和密封方法
    • 6.6 任务六 学习抽象类和抽象方法(V)
    • 6.7 任务七 项目实训(V)
    • 6.8 习题六
  • 7 项目七 用数组设置游戏元素对应属性
    • 7.1 任务一 了解学习目标和项目内容
    • 7.2 任务二 学习一维数组的声明和创建(DV)
    • 7.3 任务三 学习一维数组的应用
    • 7.4 任务四 学习多维数组
    • 7.5 任务五 学习对象数组(V)
    • 7.6 任务六 学习索引器
    • 7.7 任务七 项目实战(V)
    • 7.8 习题七
  • 8 项目八 利用覆写减少游戏程序耦合
    • 8.1 任务一了解学习目标和项目内容(D)
    • 8.2 任务二 学习编译时多态(V)
    • 8.3 任务三 学习运行时多态(V)
    • 8.4 任务四 项目实训(V)
    • 8.5 习题八
  • 9 项目九 用接口实现多种食物
    • 9.1 任务一了解学习目标和项目内容
    • 9.2 任务二 学习接口的声明与实现(D)
    • 9.3 任务三 学习接口成员的显式实现
    • 9.4 任务四 学习接口与继承(V)
    • 9.5 任务五 学习接口与抽象类
    • 9.6 任务六 项目实战
    • 9.7 习题九
  • 10 项目十 建立分值变化事件
    • 10.1 任务一 了解学习目标和项目内容
    • 10.2 任务二 学习委托
    • 10.3 任务三 学习事件(V)
    • 10.4 任务四 项目实训(V)
    • 10.5 习题十
  • 11 项目十一 保存玩家记录
    • 11.1 任务一了解学习目标和项目内容
    • 11.2 任务二 学习System.IO命名空间和流
    • 11.3 任务三 学习文件的操作
    • 11.4 任务四 学习获取文件基本信息
    • 11.5 任务五 学习文本文件写入和读取(V)
    • 11.6 任务六 学习二进制文件写入和读取
    • 11.7 任务七 项目实训(V)
    • 11.8 习题十一
  • 12 项目十二 处理游戏数据读写异常
    • 12.1 任务一了解学习目标和项目内容
    • 12.2 任务二 学习异常处理的结构(DV)
    • 12.3 任务三 学习System.Exception类的使用(V)
    • 12.4 任务四 项目实训(V)
    • 12.5 习题十二
    • 12.6 课程结语
  • 13 计算机软件技术应用工程师(C#)
    • 13.1 训练一
    • 13.2 训练二
    • 13.3 训练三
    • 13.4 训练四
    • 13.5 训练五
  • 14 课程配套资源
    • 14.1 课标
    • 14.2 课件
    • 14.3 教案
    • 14.4 案例参考
    • 14.5 论文
    • 14.6 专著
      • 14.6.1 获奖
    • 14.7 教材
任务二 学习C#入门知识(D)
  • 1 .NET框架和C#语言简介
  • 2 Visual Studi...






     

.NET框架简介

说到C#,就不得不先简单介绍一下.NET。按照微软总裁兼首席执行官Steve的说法:“它代表一个集合,一个环境,可以作为平台支持下一代Internet的可编程结构。”

C#是.NET的代表语言。C#语言和.NET的关系就像舰载战斗机与航空母舰的关系。航母是一个能让舰载机充分发挥其优势的作战平台,所以学习C#语言也离不开对.NET的理解。为了方便学习,下面简单地了解一下.NET这个“航母”平台的基础知识。

Microsoft.NET(简称.NET)是微软公司推出的面向网络的一套完整的开发平台,从程序员的角度看,.NET是一组用于生成Web服务器应用程序、Web应用程序、Windows应用程序和移动应用程序的软件组件,用该平台建立的应用程序可以在公共语言运行库的控制下运行。

    如图1.1所示,.NET体系结构的核心是.NET框架(.NET Framework),其在操作系统之上为程序员提供了一个编写各种应用程序的高效工具和环境。.NET体系结构的顶层是用各种语言编写的应用程序,这些应用程序由公共语言运行库控制执行。

 图1.1  .NET体系结构

.NET能支持多种应用程序的开发,其中控制台程序是一种传统而简单的程序形式,一般是字符界面,可以编译为独立的可执行文件,通过命令行运行,在字符界面上输入/输出。Windows应用程序是基于Windows Forms(Windows窗体)的应用程序,是一种基于图形用户界面(Graphical User Interface,GUI)的应用程序,一般是在用户计算机本地运行的。本书案例采用的是控制台应用程序或Windows应用程序。




    .NET框架包括两个主要组件,即公共语言运行库和.NET Framework类库。    

(1)公共语言运行库 

公共语言运行库又称公共语言运行时(Common Language Runtime,CLR)或公共语言运行环境,是.NET框架的底层。其基本功能是管理用.NET框架类库开发的应用程序的运行并且提供各种服务。

.NET将开发语言与运行环境分开,一些基于.NET平台的所有语言的共同特性(如数据类型、异常处理等)都是在CLR层面实现的,在.NET上集成的所有编程语言编写的应用程序均需

通过CLR才能运行,使用CLR的一大好处是支持跨语言编程,凡是符合公共语言规范(Common Language Specification,CLS)的语言所编写的对象都可以在CLR上相互通信,相互调用。例如,用C#语言编写的应用程序,也能够使用Visual Basic.NET编写的类库和组件,反之亦然,这大大提高了开发人员的工作效率。

(2).NET Framework类库

.NET Framework类库是一个面向对象的可重用类型集合,该类型集合可以理解成预先编写好的程序代码库,这些代码包括一组丰富的类与接口,程序员可以用这些现成的类和接口来生成.NET应用程序、控件和组件。例如,Windows窗体类是一组综合性的、可重用的类型,使用这些类型可以轻松、灵活地创建窗体、菜单、工具栏、按钮和其他屏幕元素,从而大大简化Windows应用程序的开发难度。程序员可以直接使用类库中的具体类,或者从这些类中派生出自己的类。.NET框架类库是程序员必须掌握的工具,熟练使用类库是每个程序员的基本功。.NET支持的所有语言都能使用类库,且它们使用类库的方式是一样的。




    .NET框架上可以集成几十种编程语言,这些编程语言共享.NET框架的庞大资源,还可以创建由不同语言混合编写的应用程序,因此可以说.NET是跨语言的集成开发平台。

如图1.2所示,.NET框架上的各种语言分别有各自不同的编译器,编译器向CLR提供原始信息,各种编程语言的编译器负责完成编译工作的第一步,即把源代码转换为用Microsoft中间语言(Microsoft Intermediate Language,MSIL)表示的中间代码。MSIL是一种非常接近机器语言的语言,但还不能直接在计算机上运行。第二步编译工作就是将中间代码转换为可执行的本地机器指令(本地代码),在CLR中执行,这个工作由CLR中包含的即时编译器(Just In Time,JIT)完成。  

  图1.2  .NET代码执行流程示例

认识C#语言

C#语言是微软公司专门为.NET平台量身打造的程序设计语言,是一种强大的、面向对象设计方法的程序设计语言,它是为生成运行在.NET框架上的企业级应用程序而设计的。  

C#看起来与Java有着惊人的相似,它包括诸如单一继承、接口等特征以及与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java仍然有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET Windows网络框架的主角。

微软对C#的定义如下:C#是一种安全、现代、简单的由C和C++衍生而来的面向对象编程语言。它根植于C和C++语言之上,并可以立即被C和C++的使用者所熟悉。设计C#的目的就是综合Visual Basic的高生产率和C++的行动力,目前,C#已经成为Windows平台上软件开发的绝对主流语言。

作为.NET的核心语言,C#有很多优点,如完全面向对象的设计、强大的类型安全、自动的垃圾回收功能、组件技术、跨平台异常处理、版本处理技术等。大家将在后续的C#学习与使用中深入体会这些优点。