第一章 c#程序设计概述
本章学习目标:
- c#语言的主要特点
- Visual Studio 2008/2017的集成开发环境
- c#控制台应用程序和Windows窗体应用程序设计步骤
- c#程序代码的基本书写规则和应用程序结构
1.1c#语言简介
C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft).NET公共语言运行环境中内置的核心程序设计语言。使用c#语言可以开发在.NET Framework上运行的多种应用程序,包括:控制台应用程序,Windows窗体应用程序,Web应用程序以及Web服务等。
首先写一个c#程序的基本实例:
using System; namespace Chapter_one { /* 类名为HelloWorld */ class HelloWOrld { /* main函数 */ static void Main(string[] args) { /* 我的第一个c# HelloWorld程序 */ Console.WriteLine("Hello World"); Console.ReadLine(); } } }
1.1.1c#语言的主要特点
c#语言是Microsoft为.NET环境开发的一种全新编程工具,它集c/c++语言的强大功能,Java语言面向对象的体征以及Visual Basic语言的易用性为一体,为在.NET环境下的计算机应用提供了功能强大,全新,易用的程序设计工具。
c#语言的主要特点如下:
- 语法简洁
- 满足通用语言规范
- 面向对象
- 完整的安全性和错误处理
- 兼容性和灵活性
- 版本控制
- 与Web完美结合
c#语言强大的编程功能:
- 布尔条件(Boolean Conditions)
- 自动垃圾回收(Automatic Garbage Collection)
- 标准库(Standard Library)
- 组件版本
- 属性(Properties)和事件(Events)
- 委托(Delegates)
- 索引器(Indexers)
- 条件编译(Conditional Compilation)
- 简单的多线程(Multithreading)
- LINQ和Lambda表达式
- 集成Windows
1.1.2c#与其他程序设计语言的比较
c#是在吸收c/c++和java等程序设计语言优点的基础上构建出来的一种新型程序设计语言,列举c#与c/c++以及java的主要异同之处
比较内容 | c#程序设计语言 | c/c++程序设计语言 |
语言处理方式 | 编译成中间语言(MSIL)代码,执行时通过JIT(及时处理器)将中间代码转换为本机代码执行 | 直接编译成为本机可以执行的代码 |
指针数据 | 默认数据下,不使用指针数据,而是使用对类实例的引用。也可以”非托管”方式下使用指针 | 大量使用指针数据(特别是函数的参数中) |
库 | 依赖于.NET基类 | 依赖于以继承和模板为基础的标准库 |
继承 | 只允许单继承,通过接口实现多继承 | c++允许多继承 |
内存管理 | 使用垃圾回收机制,自动在合适的时机回收不再使用的内存空间 | 程序中必须显式地删除(回收)动态分配的存储空间 |
字符串处理 | 字符串是基本数据类型,提供多种处理字符串的方法 | 字符串处理基于数组处理方法 |
备注:在通用语言规范中,任何语言编写的源程序都被编译成相同的中间语言(MSIL)代码,然后由通用语言运行环境(Common Lanuage Runtime,CLR)负责执行,这种处理方式称为”托管方式”,因而这样的代码亦称为”托管代码”。
比较内容 | c#程序设计语言 | Java程序设计语言 |
语言处理和程序运行方式 | c#代码编译成为中间语言(MSIL)代码,然后在通用语言运行环境(CLR)中运行,CLR的JIT编译器将中间代码编译成为本地代码执行 | Java代码编译成为中间代码,通过运行环境JRE提供的Java虚拟机执行 |
语言功能区别 | 源程序文件名不受类名的限制,提供运算符重载,装箱与拆箱,方法隐藏等功能 | 源程序文件名受类名的限制 |
c#语言编写的源程序文件处理方式所示:
1.2c#控制台应用程序设计实例
控制台(Console)应用程序是利用c#语言开发的应用程序类型之一,由于不涉及windows系统的组成元素,因而结构比较简单
1.2.1c#控制台应用程序的创建
在Microsoft Visual Studio 2008/2017(简称VS 2008/2017)中创建一个c#控制台应用程序的主要步骤如下:
(1) 启动”Microsoft Visual Studio 2017”,进入VS2017集成开发环境的页面,如下
(2) 选择项目类型为控制台应用程序,并指定项目名称及其保存位置
(3) 在应用程序编辑环境中输入程序代码
(5) 调试运行程序,按F5或选择”调试”菜单组中的”启动调试”命名,执行(调试)
1.2.2c#控制台应用程序的结构
在c#程序中,一个应用程序可以由一个或者多个类组成,所有程序代码必须封装在类中。一个源程序文件中可以由一个或者多个类,但不允许将一个类拆散存放在不同的源程序文件中。在为源程序文件命名时,可以与类的名字相同,也可以不同,即源程序文件的命名不受类名限制。
一个c#控制台应用程序主要由以下几部分构成:
1.导入其他系统定义元素部分
高级程序设计语言总是依赖许多系统预定义元素,为了在c#程序中能够使用这些预定义元素,需要将这些元素导入。上面创建的控制台应用程序中,使用下述代码段导入了对其他命名空间的引用:
using System; using System.Collections.Generic; using System.Linq; using System.Text;
2.命名空间
使用namespace和命名空间标识符(命名空间名字)构建用户命名空间,空间的范围用一对化括号界定,如下所示:
namespace Hello //默认情况下命名空间名与解决方案名相同 { }
3.类
类必须包含在某个命名空间中(例如namespace Hello),使用关键字class和类标识符(类名,默认为Prograam)构建类,类的范围使用一对花括号界定,如下所示:
class Program { }
4.主方法
每个应用程序都有一个执行的入口,指明程序执行的开始点。c#应用程序中的入口点用主方法标识,主方法的名字为Main(),后面的括号中即使没有参数也不能省略。
static void Main(string[] args) { }
5.方法中的c#代码
在方法体(方法的左右括号之间)中书写实现方法逻辑功能的代码
static void Main(string[] args) { Console.Write("请输入你的姓名:"); string name = Console.ReadLine(); //输入姓名字符串赋值给name变量 Console.WriteLine("欢迎"+name+"进入c#程序设计"); Console.ReadLine(); /* 使得程序设计不会自动退出调试环境 */ }
1.2.3c#程序代码的基本书写规则
1.程序代码区分字母大小写
c#是一种大小写敏感的语言,字母大小写不同的标识符被视为不同的标识符。
2.语句书写规则
(1)每个语句都必须用一个分号(“;”)作为结尾
(2)c#允许在同一个代码行上书写多个语句,但从可读性的角度来看,并不提倡这种做法
(3)c#是一种块结构的编程语言,所有的语句都是代码块的一部分
(4)语句中作为语法成分的标点符号必须是西方标点符号,中文标点符号只能作为字符常量使用
3.注释信息
注释信息是程序中不可执行的部分,仅用于对程序代码加以说明,有助于提高程序的可读性。c#中的注释方法由3种:
(1) 单行注释。在一个语句行上,用双斜杠”//”作为引导符,其后的任何内容均为注释信息,编译时被忽略
(2) 多行注释。从”/*”开始,到”*/”结束,其中的所有内容(可以是一行,或多行)均为注释信息,但注释文字中必须不包含”*/”
(3) XML注释。在一个代码行上,用”///”开始,其后的任何内容均为注释信息,编译时并提取出来,形成一个特殊格式的文本文件(XML),用于创建文档说明书
对于初学者来说,在程序设计中经常使用的是前两种注释方式
1.3c#Windows窗体应用程序设计实例
Windows窗体应用程序通过窗体上的各种图形用户界面(Graphical User Interface,GUI)元素形成与用户交流的界面。
1.3.1c#windows窗体应用程序的创建
在Visual Studio 2008中创建一个c#windows窗体应用程序通常需要以下4个步骤:
(1) 设计用户界面
(2) 设置对象属性
(3) 编写对象事件过程代码
(4) 保存并运行程序
1.3.2c#windows窗体应用程序的结构
窗体应用程序主要由下面几种程序构成:
(1) 导入其他系统预定义元素定义
(2) 命名空间
(3) 类
(4) 方法(主方法,事件响应处理过程)
Program.cs的源代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace motto { static class Program { ///<summary> ///应用程序的主入口点 ///</summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
本章小结
本章介绍了c#语言的主要特点,并通过两个简单实例介绍了c#控制台应用程序和Windows窗体应用程序的开发过程,以及它们的组成结构,还介绍了c#程序代码的基本书写规则。
习题:
(1) 简述在VS 2017集成环境中创建c#控制台应用程序的主要步骤
(2) 一个c#控制台应用程序主要由哪几个部分构成?
(3) 什么是托管方式?