1 / 521

第 1 章 C# 入门基础

第 1 章 C# 入门基础. Microsoft 公司是这样描述 C# 的:“ C# 是从 C 和 C++ 派生来的一种简单、现代、面向对象和类型安全的编程语言。 C# (读做 'Csharp' )主要是从 C/C++ 编程语言家族移植过来的, C 和 C++ 的程序员会马上熟悉它。 C# 试图结合 Visual Basic 的快速开发能力和 C++ 的强大灵活的能力。”。本章将讲解使用 C# 语言开发的入门知识,主要介绍以下知识点。 .NET Framewrok ; 搭建 Visual Studio 2008 开发环境; 创建第一个控制台应用程序;

baina
Télécharger la présentation

第 1 章 C# 入门基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第1章 C#入门基础 • Microsoft公司是这样描述C#的:“C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言。C#(读做'Csharp')主要是从C/C++编程语言家族移植过来的,C和C++的程序员会马上熟悉它。C#试图结合Visual Basic的快速开发能力和C++的强大灵活的能力。”。本章将讲解使用C#语言开发的入门知识,主要介绍以下知识点。 • .NET Framewrok; • 搭建Visual Studio 2008开发环境; • 创建第一个控制台应用程序; • 创建第一个Windows窗体应用程序。

  2. 1.1 C#概述 • C#是一种简单的、现代的、面向对象的、类型安全的编程语言。它不但提供了面向对象编程的技术,而且还提供了面向组件编程的支持技术。Visual C# 2008提供了许多方便开发的工具,如高级代码编辑器、方便的用户界面设计器、集成调试器等。开发人员使用这些工具,可以更容易在C#语言3.0版和.NET Framework 3.5版的基础上开发应用程序。(源码网整理:www.codepub.com)

  3. 1.1.1 C#语言 • C#是一种Microsoft公司设计的、简洁的、类型安全的、面向对象的语言,它松散地基于C/C++语言,并且有很多方面和Java语言类似。开发人员可以使用C#语言来构建在.NET Framework上运行的各种安全、可靠的应用程序。 • C#语法表现力强、简单易学、容易上手。通常地,开发人员通过很短的时间的学习,就能够使用C#语言开发高效的程序。C#语法提供了许多强大的功能,如可为空置(null)的值类型、枚举、委托、lambda表达式、直接内存访问等。C#支持泛型类型和方法,进而提供了更为出色的类型安全和性能。特别地,C#还提供了迭代器、语言集成查询(LINQ)表达式等高级功能,使得开发人员可以在C#代码中创建具有查询功能的程序代码。

  4. 1.1.2 .NET框架 • C#程序必须在.NET Framework上运行。.NET Framework是Windows的一个不可或缺的组件,是一个支持构建、部署和运行下一代应用程序和Web服务的完整Windows组件。.NET Framework能够提供效率极高的、基于标准的多语言(如C#、VB.NET、C++、J#等)环境,能够将现有的应用程序与下一代应用程序和服务集成,并能迅速部署和操作Internet规模的应用程序。.NET Framework主要包括两个组件:公共语言运行库(Common Language Runtime,简称为CLR)和.NET Framework类库(Class Library)。 • 1.公共语言运行库 • 2..NET Framework类库 • 3.公共语言运行库、.NET Framework类库和应用程序的关系 • 4.语言互操作性 • 5.C#应用程序执行流程

  5. 1.1.3 C#应用程序 • C#应用程序包括两种应用程序:控制台(Console)应用程序(1.3小节创建的应用程序就是一个控制台应用程序)和Windows窗体应用程序(1.4小节创建的应用程序就是一个Windows窗体应用程序)。控制台应用程序的界面往往比较简单,而Windows窗体应用程序能够提供丰富的图形界面。 • 1.控制台应用程序 • 2.Windows窗体应用程序

  6. 1.2 搭建Visual Studio 2008开发环境 • 本小节介绍搭建开发C#应用程序(如Windows窗体应用程序、ASP.NET网站等)的环境,包括安装Microsoft Visual Studio 2008、配置集成开发环境(IDE)、熟悉集成开发环境(IDE)等内容。 • 注意:笔者机器的操作系统为Microsoft Windows Server 2003 Enterprise Edition Service Park 2。

  7. 1.2.1 安装Microsoft Visual Studio 2008 • 下面介绍在笔者机器上安装Microsoft Visual Studio Team System 2008简体中文版的操作步骤,具体如下。

  8. 1.2.2 配置集成开发环境(IDE) • 由于Microsoft Visual Studio 2008集成开发环境(IDE)非常复杂,为了以后能够更加方便地开发各种C#应用程序,在此,特意详细介绍配置Microsoft Visual Studio 2008集成开发环境的方法。

  9. 1.2.3 熟悉集成开发环境(IDE) • Microsoft Visual Studio 2008集成开发环境包括多个可以停靠或浮动的面板,如“工具箱”、“服务器资源管理器”、“解决方案资源管理器”、“属性”等面板。

  10. 1.3 创建第一个控制台应用程序 • 本节介绍使用Microsoft Visual Studio 2008集成开发环境(IDE)创建第一个控制台应用程序——Sample_01_CA的方法,以及开发Sample_01_CA应用程序所涉及的各种基本技术,如编写C#代码、运行应用程序等。

  11. 1.3.1 创建Sample_01_CA控制台应用程序 • 依次选择“开始”|“所有程序”|“Microsoft Visual Studio 2008”|“Microsoft Visual Studio 2008”命令,打开“起始页 - Microsoft Visual Studio”对话框。单击“最近项目”面板中的“创建”下的“项目”链接,弹出“新建项目”对话框,如图1.24所示。

  12. 1.3.2 解决方案资源管理器 • 创建Sample_01_CA控制台应用程序成功之后,Microsoft Visual Studio 2008集成开发环境(IDE)将为该应用程序创建一个默认类文件,名称为“Program.cs”。打开“解决方案资源管理器”面板,可以查看Sample_01_CA控制台应用程序包含的所有资源和数据,如图1.25所示。

  13. 1.3.3 Program.cs文件 • 双击“解决方案资源管理器”面板中的“Program.cs”节点,打开Program.cs文件。该文件为Sample_01_CA控制台应用程序提供主入口点。

  14. 1.3.4 AssemblyInfo.cs文件 • 首先展开“解决方案资源管理器”面板中的“Properties”节点,然后双击“AssemblyInfo.cs”节点打开AssemblyInfo.cs文件。该文件用来配置Sample_01_CA控制台应用程序的程序集信息。

  15. 1.3.5 运行应用程序 • 按下“F5”按钮或者单击Microsoft Visual Studio 2008集成开发环境中的按钮即可运行Sample_01_CA控制台应用程序。该应用程序运行之后,显示一个黑色的控制台对话框,如图1.26所示。

  16. 1.4 创建第一个Windows窗体应用程序 • 本节介绍使用Microsoft Visual Studio 2008集成开发环境(IDE)创建第一个Windows窗体应用程序——Sample_01_WFA的方法,以及开发Sample_01_WFA应用程序所涉及的各种基本技术,如设计Windows窗体、编写C#代码、配置应用程序、运行应用程序等。

  17. 1.4.1 创建Sample_01_WFA Windows窗体应用程序 • 依次选择“开始”|“所有程序”|“Microsoft Visual Studio 2008”|“Microsoft Visual Studio 2008”命令,打开“起始页 - Microsoft Visual Studio”对话框。单击“最近项目”面板中的“创建”下的“项目”链接,弹出“新建项目”对话框,如图1.27所示。

  18. 1.4.2 解决方案资源管理器 • 创建Sample_01_WFA Windows窗体应用程序成功之后,Microsoft Visual Studio 2008集成开发环境(IDE)将为该应用程序创建一个默认Windows窗体,名称为“Form1.cs”。打开“解决方案资源管理器”面板,可以查看Sample_01_WFA Windows窗体应用程序包含的所有资源和数据,如图1.28所示。

  19. 1.4.3 Form1.cs窗体 • 在“解决方案资源管理器”面板中双击“Form1.cs”节点,打开Form1.cs窗体的设计界面,如图1.29所示。此时,开发人员可以直接将“工具箱”面板中的控件拖放到“Form1.cs”窗体上。

  20. 1.4.4 Form1.Designer.cs文件 • 首先展开“解决方案资源管理器”面板中的“Form1.cs”节点,然后双击“Form1.Designer.cs”节点打开Form1.Designer.cs文件。该文件中的代码为Form1.cs窗体的设计代码,用来描述Form1.cs窗体上的每一个控件。

  21. 1.4.5 Form1.cs窗体的代码 • 右击“解决方案资源管理器”面板中的“Form1.cs”节点,打开Form1.cs窗体的代码文件。该文件保存Form1.cs窗体的事件等设计代码。

  22. 1.4.6 Program.cs文件 • 双击“解决方案资源管理器”面板中的“Program.cs”节点,打开Program.cs文件。该文件为Sample_01_WFA Windows窗体应用程序提供主入口点。

  23. 1.4.7 AssemblyInfo.cs文件 • 首先展开“解决方案资源管理器”面板中的“Properties”节点,然后双击“AssemblyInfo.cs”节点打开AssemblyInfo.cs文件。该文件用来配置Sample_01_WFA Windows窗体应用程序的程序集信息。

  24. 1.4.8 运行应用程序 • 按下“F5”按钮或者单击Microsoft Visual Studio 2008集成开发环境中的“”按钮即可运行Sample_01_WFA Windows窗体应用程序。该应用程序运行之后,显示的第一个对话框为“Form1”对话框,如图1.30所示。

  25. 1.5 小结 • 本章主要介绍了搭建开发Visual Studio 2008集成开发环境,以及C#语言和.NET Framework的概述。其中,读者要着重掌握使用Visual Studio 2008集成开发环境开发第一个控制台应用程序和Windows窗体应用程序的方法。只有这样,才能进行后续的开发。下一章将要介绍使用C#语言如何编写第一个应用程序。

  26. 1.6 习题 • 1.在本章介绍的Sample_01_WFA Windows窗体应用程序之上,实现以下功能。 • (1)添加名称为“Dialog.cs”的窗体到应用程序中。 • (2)运行该应用程序。

  27. 第2章 C#基本概念 • C#语言从1.0版本发展到3.0版本经历了比较长的时间,现在已经是一种比较完善、简单、易学的编程语言。为了读者能够首先对C#语言有一个简单的认识,笔者特意在本章介绍了Hello World应用程序和C#语言的一些常见的基本概念,主要介绍以下知识点。 • 创建Hello World应用程序; • 编译Hello World应用程序; • 运行Hello World应用程序; • C#程序的概念扩展。

  28. 2.1 创建Hello world应用程序 • 对于C#初学者而言,Hello world应用程序是C#语言入门最好的、简单的示例程序。该程序可以在控制台中显示“Hello world”字符串。下面介绍书写该程序的基本方法。

  29. 2.1.1 创建hello.txt文本文件 • 为了方便初学者真正认识C#程序,我们这里不使用集成开发环境来编写本程序,而是使用记事本来编写程序。新建一个名称为“hello.txt”的文本文件,并打开该文件。

  30. 2.1.2 创建HelloWorld类 • 任何一个C#应用程序都是由类(class)组成。一个C#应用程序可以包括一个类或多个类。类实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象程序设计(Object-Oriented Programming,简称为OOP)的基础。 • 面向对象程序设计指一种程序设计范型,它将对象作为程序的基本单元。在面向对象程序设计中,最为基本的概念是类(class)和对象(object),对象又称为实例。 • 1.类 • 2.对象

  31. 2.1.3 添加Main()方法 • 一旦创建一个类之后,但是不为该类添加任何成员,那么该类就是一个空类,即它不能描述世界上的任何一种对象。为了使得类能够描述一种对象,那么就需要为该类添加一些属性和行为。 • 一个行为就产生一个动作。在类中,使用方法(method)来描述这一行为。也就是说,方法是一个类能做的事情(即一些计算或操作),但是并没有做这事情。作为一条狗而言,它是会吠叫、会坐下、会吃。因此,为了能够使用Dog类描述狗,那么就需要在该类中定义以下3个方法。 • Bark(),吠叫。 • Sit(),坐下。 • Eat(),吃。

  32. 2.1.4 调用WriteLine()方法 • 在Dog类中,虽然定义了狗的3个行为:吠叫、坐下和吃,但是并没有使这3个行为发生。如果想要芊芊这一条狗吠叫,那么就需要一个主动的动作使得芊芊吠叫。这一个主动的动作就是调用该行为对应的方法,即通过调用方法使得该方法对应的行为发生。

  33. 2.1.5 引入System命名空间 • 世界上存在很多狗,而且一些狗的名字也相同。譬如,张三家的狗叫芊芊,而李四家的狗也叫芊芊。那么如何区分这两家的狗呢?自然,称呼张三家的狗可能是“张三家的芊芊”,称呼李四家的狗可能是“李四家的芊芊”。通过这种方式,就能够区分张三家和李四家的芊芊了。

  34. 2.1.6 整理Hello world应用程序的代码 • 经过上述步骤之后,就已经书写了一个完整的C#应用程序——Hello world应用程序,它的完整的程序代码如下。 • using System; • class HelloWorld • { • static void Main() • { • Console.WriteLine("Hello, World"); • } • }

  35. 2.2 编译和运行Hello World应用程序 • 2.1小节仅仅书写了Hello world应用程序的代码。如果要将这一段程序代码成为一个可以执行的文件,则需要使用Microsoft C#编译器编译这一段代码。 • (源码网整理:www.codepub.com)

  36. 2.3 C#程序的概念扩展 • 在2.1小节中介绍了C#面向对象程序设计的一些基本概念,如类、对象、实例、属性、方法、调用方法等。除了上述这些概念之外,还有一些比较常用的概念,如继承性、多态性等。 • 1.继承性 • 2.多态性 • 3.接口

  37. 2.4 小结 • 本章主要介绍了“Hello world”应用程序,包括创建Hello World应用程序、编译Hello World应用程序、运行Hello World应用程序和分析Hello World应用程序。其中,读者需要着重掌握使用记事本创建Hello World应用程序的方法。下一章将介绍C#的类型。

  38. 2.5 习题 • 使用记事本撰写一个名称为“Test_02”的C#应用程序的代码,并将此代码编译为一个名称为“Test_02.exe”的可执行文件。Test_02应用程序在控制台显示“This is a C# program.”字符串。

  39. 第3章 类型 • 类型是C#语言中最为基本的概念之一。不同类型的变量将拥有不同的数据存储方式和操作方法。C#语言的类型系统是统一的,它可以把任何类型的值都按照对象来处理。本章将讲解C#语言中各种类型,主要介绍以下知识点 • 值类型; • 引用类型; • 装箱; • 拆箱。

  40. 3.1 类型概述 • C#语言中的每一个类型都直接或间接派生于object类型,即object类型是C#语言所有类型的最终基类型。C#语言的类型可以分为以下3种类型。 • 值类型(value-type),它的变量直接包含其数据。 • 引用类型(reference-type),它的变量只存储对其数据的引用(即访问其数据的访问地址)。引用类型的变量又称为对象(object)。 • 指针类型(point-type),和C、C++语言中的指针类似,而且只能用作在不安全代码中。由于在C#编程中很少使用指针类型,因此,在此不做详细介绍。

  41. 3.2 值类型 • 值类型要么是结构类型,要么是枚举类型。值类型的变量直接包含其数据,而且其值不可能为null。在操作值类型的变量时,只会影响该变量的数据,而不会影响另外一个变量的值。所有的值类型都直接或间接派生于System.ValueType类型。 • 值类型包括结构类型、枚举类型、布尔类型、自定义结构类型、sbyte、byte、char、short、ushort、int、uint、long、ulong、float、double和decimal类型。其中,C#语言提供了一种被称为“简单类型(simple type)”的预定义结构类型。这些类型通过C#保留字标识,如char、int等。本节将详细介绍值类型的知识点。

  42. 3.2.1 System.ValueType类型 • 所有值类型都直接或间接从System.ValueType类隐式继承而来,并且任何类型不能从值类型派生而来。System.ValueType本身是一个类,它只包含以下3个方法。 • Equals(),判定当前实例与指定的对象是否相等。 • GetHashCode(),返回当前实例的哈希代码。该哈希代码用于哈希表(一种数据结构)的散列运算。 • ToString(),返回当前实例的完全限定类型名称。

  43. 3.2.2 整数类型 • 整数类型包括9种类型,如sbyte、byte、short等。它们的具体说明、.NET Framework中的名称和取值范围如表3.1所示。 • 1.int类型 • 2.long类型 • 3.char类型

  44. 3.2.3 浮点型 • C#语言包括两种浮点型:float和double。float类型表示32位的单精度浮点数,它的取值范围为±1.5e-45~±3.4e38。double类型表示64位的双精度浮点数,它的取值范围为±5.0e-324~±1.7e308。浮点数包括以下3种特殊的值。 • 正零和负零 • 正无穷大和负无穷大 • 非数字(Not-a-Number)值

  45. 3.2.4 decimal类型 • decimal类型表示128位的数值,取值范围为±1.0e-28~±7.9e28,特别适用于财务计算和货币计算。和float类型一样,在书写decimal类型的值时,需要在数值后添加后缀m,否则编译出错。 • 与浮点型相比,decimal类型具有较高的精度,但取值范围较小。因此,从浮点型到decimal类型的转换可能会产生溢出异常,而从decimal类型到浮点型的转换则可能导致精度损失。正是由于这些原因,所以,在浮点型和decimal类型之间不存在隐式转换。如果要转换浮点型到decimal类型,则必须使用强制转换方法。

  46. 3.2.5 bool类型 • bool类型表示布尔逻辑量。它只包含两个值:true和false,而且这两个值意义恰好相反。

  47. 3.2.6 枚举类型 • 枚举(enum)类型也是一种值类型,它具有命名常量的独特的类型。每个枚举类型都有一个基础类型,该基础类型必须为byte、sbyte、short、ushort、int、uint、long或ulong。其中,默认的基础类型为int。 • 枚举类型一般包含一个或多个枚举值,每一个枚举值之间用逗号(,)分隔。枚举值又称为枚举数,它的默认基础类型为int。默认情况下,第一个枚举数的值为0,后面的每一个枚举数的值依次增1。

  48. 3.2.7 结构类型 • 结构类型也是一种值类型,它可以声明常量、字段、方法、属性、索引器、运算符、实例构造函数、静态构造函数和嵌套类型。有关结构类型的知识点将在第9章中进行详细介绍。

  49. 3.2.8 实例一:把整数转换为二进制数 • 【实例3-1】实现把整数转换为二进制数的功能。该功能由ConvertIntToBinary(int n)静态函数实现,n参数表示被转换的整数,该函数返回二进制数的字符串形式。

  50. 3.2.9 实例二:把二进制数转换为整数 • 【实例3-2】实现把二进制数转换为整数的功能。该功能由ConvertBinaryToInt(string binary)静态函数实现,binary参数表示被转换的二进制数的字符串形式,该函数返回一个整数。

More Related