第2章C#基础

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。本章介绍C#基础,首先介绍C#语言,然后讲解Visual C# 4.0中创建项目和解决方案,之后以“Hello World”实例向读者展示Windows应用程序的创建和运行及类库的创建,最后概述Visual C# 4.0中的一些新特性。

2.1 C#语言

C#(C sharp)是由C和C++发展而来的面向对象的编程语言,它是一种现代的、安全的、稳定的、简单的语言。它在继承C和C++强大功能的同时简化和现代化了C++在类、命名空间、方法重载和异常处理等领域的处理方法。摒弃了C++的复杂性,使它更易用、更少出错,减少了C++的一些特性,不再有宏、模板和多重继承。这些功能的改善使得C#语言更易于学习和使用。另外,C#还综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。并且C#成为ECMA与ISO标准规范。C#看似基于C++写成,但又融入其他语言(如Delphi、Java、VB等)的特性。

在C#之前,C和C++已经成为在软件的开发领域中使用最广泛的语言。它们为开发人员提供了十分灵活的操作,但同时也因此牺牲了一定的效率及相应的易用性,比如开发同一应用程序,C和C++与Visual Basic等语言相比需要更长时间来开发,且Visual Basic操作更为简单。所以开发人员需要一种简单易用、高效灵活的开发语言,它要和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境,且在快速开发的同时又可以调用底层平台的所有功能。

C#是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通信领域。

C#提出了纯粹的面向对象概念,并在语言特性中展现得淋漓尽致。C++并非纯面向对象的,为了和C兼容及提供更高的执行效率,它保留了很多模块化的东西。Java尽管号称是面向对象的,但实际上,对于对象所应该具备的三种构成结构——属性、方法和事件,Java仅提供了方法,其他两种结构都要通过方法来模拟。在C#中,所有面向对象的概念都在语言中得到了非常好的体现。同时,C#还通过类类型、值类型和接口类型的概念形成了统一的类型系统。C#使用了大家所熟知的语法实现了方法,以至于很多人认为C#和Java、C++等面向对象语言“非常相像”,这使得从使用其他面向对象语言转到使用C#的过程非常简单。

最重要的是,C#不但保持了C/C++原有的强大功能和良好的底层编程能力,还提高了程序开发效率,使得C++程序员可以高效地开发程序。C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快地转向C#。C#主要有以下特点。

1.C#的效率与安全性

C#的使用不但使开发人员可以快速高效地开发程序,同时C#还提供了强大的安全性,比如,类型安全、资源自动回收,这可以帮助开发人员消除大量程序错误。

在程序开发过程中,程序员开发人员常会犯一些最简单的小错误,比如忘了初始化变量,而在C++中,往往就是这些小错误带来了难以预料的问题,有些甚至需要很长时间来寻找和解决。一旦一个程序作为产品来使用,最简单的错误纠正起来也可能要付出极其昂贵的代价。C#的现代化设计能够消除很多常见的C++编程错误。例如,资源回收减轻了程序员内存管理的负担;不能使用没有初始化的变量,当使用一个没有初始化的变量时,编译器会给出相关提示。这样能够避免由于使用不经初始化的变量计算结果而导致的错误,而程序开发人员还不知道这些奇怪的结果是如何产生的;C#取消了不安全的类型转换。

由于C#提高了程序开发的安全性,使得程序员编写与维护那些解决复杂商业问题的程序就更方便了。它使开发者能用更少的代码做更多的事,同时也不易出错。

2.C#支持现有的网络编程新标准

新的应用程序开发模型意味着越来越多的解决方案依赖于新出现的网络标准,例如HTML、XML、SOA等。现存的开发工具往往都是早于Internet出现的,或者是在广大程序员所熟知的网络还处于孕育时期出现的,所以,它们一般无法很好地支持最新的网络技术。

XML网络服务框架可以使现有的XML网络服务对程序员来说就和C#对象一样。这样,程序员就可以方便地使用他们已有的面向对象的编程技巧来开发利用现有的XML网络服务。XML正逐渐成为在网络上传输结构化数据的标准。这种数据集合往往非常小,为提高性能,C#允许把XML数据直接映射到struct数据类型,而不是class,这样对处理少量的数据非常有效。

C#程序员可以在Microsoft.NET平台上事半功倍地构建应用程序的扩展框架。C#包含了内置的特性,使任何组件可以轻松转化为XML网络服务,通过Internet被任何操作系统上运行的任何程序调用。

C#语言允许类型定义的、扩展的元数据。这些元数据可以应用于任何对象。项目构建者可以定义领域特有的属性并把它们应用于任何语言元素——类、接口等。然后,开发人员可以编程检查每个元素的属性。这样,很多工作都变得方便多了,比如编写一个小工具来自动检查每个类或接口是否被正确定义为某个抽象商业对象的一部分,或者只是创建一份基于对象的领域特有属性的报表。定制的元数据和程序代码之间的紧密对应有助于加强程序的预期行为和实际实现之间的对应关系。

3.C#的扩展交互性

作为一种自动管理的、类型安全的环境,C#适合于大多数企业应用程序。但实际的经验表明。有些应用程序仍然需要一些底层的代码,要么是因为基于性能的考虑,要么是因为要与现有的应用程序接口兼容。这些情况可能会迫使开发者使用C++,即使他们本身宁愿使用更高效的开发环境。

C#采用以下对策来解决这一问题,内置对组建对象模型(COM)和基于Windows的API的支持;允许有限制地使用纯指针(Native Pointer)。在C#中,每个对象都自动生成为一个COM对象,开发者不再需要显式地实现IUnknown和其他COM接口,这些功能都是内置的。类似地,C#可以调用现有的COM对象,无论它是由什么语言编写的。C#包含了一个特殊的功能,使程序可以调用任何纯API。在一段特别标记的代码中,开发者可以使用指针和传统C/C++特性,如手工的内存管理和指针运算,这是其相对于其他环境的极大优势。这意味着C#程序员可以在原有的C/C++代码的基础上编写程序,而不是彻底放弃那些代码。无论是支持COM还是纯API的调用,都是为了使开发者在C#环境中直接拥有必要的强大功能。

4.C#对版本更新的支持

更新软件组件是一项很容易出错的工作,因为代码的修改可能无意间改变原有程序的语义。为协助开发者进行这项工作,C#为版本的更新提供内在的支持。例如,方法重载必须显式声明,这样可以防止编码错误,保证版本更新的灵活性。还有一个相关的特性就是对接口和接口继承的内在支持。这些特性使得C#可以开发复杂的框架并且随着时间不断发展更新它。从总体来说,这些特性使得开发程序项目的后续版本的过程更加健壮,从而减少后续版本的开发成本。

2.2 创建项目和解决方案

在2.1节中讲解了C#的发展及C#所具有的特点,本节将用实例讲解在C#中创建项目和解决方案。在1.4.2节中已详细讲解了项目和解决方案,在此只作简单介绍。

2.2.1 创建新解决方案

项目是一组要编译到单个程序集(在某些情况下是单个模块)中的源文件和资源。例如,项目可以是类库或一个Windows GUI应用程序。解决方案是构成某个应用程序的所有项目集。也就是说解决方案包含项目,一个解决方案可以包含一个或多个项目。

1.创建新解决方案

(1)首先启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令,启动之后的界面如图1-7所示。

(2)在Visual Studio 2010菜单栏选择“文件”→“新建”→“项目”命令,弹出图1-9所示的“新建项目”界面。

(3)在“新建项目”界面的“已安装的模板”窗格中选择“Visual C#”,然后选择“Windows”。

(4)在“模板”窗格中选择空白“空项目”。如图2-1所示,在“名称”文本框中输入解决方案名称“2.1”,在“位置”下拉列表框中显示了解决方案保存位置,也可以单击“浏览”按钮更改保存位置。

图2-1 新建空白解决方案

(5)单击“确定”按钮,将创建名称为“2.1”的解决方案,如图2-2所示。

图2-2 解决方案资源管理器

通过图2-2可知,此方法创建的是一个空白解决方案,方案中没有任何项目。

2.创建项目

在创建项目的同时,Visual Studio将自动创建一个解决方案,此解决方案包含该新建的项目。在1.4.1节中讲解了用向导创建项目,在此将讲解创建项目的另一种方法。

(1)首先启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。

(2)在Visual Studio 2010菜单栏单击“文件”→“新建”→“项目”命令,弹出“新建项目”界面。

(3)在“新建项目”界面的“已安装的模板”窗格中选择项目的类型,此处选择“Visual C#”,然后选择“Windows”,表示创建的是“Windows”应用程序类型。

(4)在“模板”窗格中选择 “Windows窗体应用程序”,如图2-3所示。在“名称”文本框中输入项目名称“2.2”,“位置”下拉列表框中显示了解决方案保存位置,可以单击“浏览”按钮更改保存位置。

图2-3 新建Windows应用程序

(5)单击“确定”按钮,将创建名称为“2.2”的项目,如图2-4所示。

图2-4 2.2解决方案资源管理器

创建“Windows”应用程序项目时,Visual Studio 2010会自动创建一名称为“Form1”的Windows窗体和一个名称为“Program.cs”的类文件,文件主要用于设置项目的启动窗体,也就是项目运行时的入口。另外还添加了运行Windows程序所需的相关引用资源。

2.2.2 解决方案中添加项目

解决方案可以包含多个项目,可以通过在现有解决方案中新建项目和添加现有项目方式给解决方案添加项目,步骤如下。

1.添加新建项目

(1)启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令,启动Visual Studio。

(2)选择“文件”→“打开”→“项目/解决方案”命令,弹出如图2-5所示的“打开项目”对话框。

图2-5 “打开项目”对话框

(3)选择“2.2.sln”,单击“打开”按钮将打开解决方案和项目。

(4)在解决方案资源管理器中,用鼠标右键单击名为“2.2”解决方案,在弹出快捷菜单中选择“添加”→“新项目”命令。

(5)在弹出的对话框中的“名称”文本框中输入名称,在“位置”下拉列表框中显示了解决方案保存位置,可以单击“浏览”按钮更改保存位置。

(6)单击“确定”按钮,成功添加新建项目。

2.添加已有项目

(1)启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010” →“Microsoft Visual Studio 2010”命令。

(2)选择“文件”→“打开”→“项目/解决方案”命令,弹出如图2-5所示的对话框。

(3)选择“2.2.sln”,单击“打开”按钮将打开解决方案和项目。

(4)在解决方案资源管理器中,用鼠标右键单击名为“2.2”解决方案,在弹出快捷菜单中选择“添加”→“已存在项目”命令。

(5)在弹出的对话框中,选择已有项目,如图2-6所示,单击“打开”按钮,成功添加新建项目。

图2-6 “Add Existing Project”对话框

2.3 “Hello World”实例

通过2.2节学习的知识,读者已经了解在Visual Studio 2010中创建Visual C#解决方案和项目,本节将通过“Hello World”实例来分别介绍Windows应用程序、Web应用程序、控制台应用程序的创建和使用。

2.3.1 创建Windows应用实例

本节将介绍如何创建Windows应用程序。

1.创建Windows应用程序

创建Windows应用程序,首先需要创建Windows应用项目,操作方法:首先启动Visual Studio 2010,在菜单栏选择“文件”→“新建”→“项目”命令,然后在弹出的窗口中选择项目类型为Windows应用程序,输入项目名称“HelloWorld”。创建Windows应用项目详细操作步骤可以参照2.2节所介绍的项目创建方法。

2.命名

可以在项目创建时输入项目的名称,如图2-3所示的新建Windows应用程序窗口,在“名称”文本框中输入项目名称“HelloWorld”,也可以在项目创建后进行重命名,操作方法:在如图2-7所示的“HelloWorld”解决方案的资源管理器中,用鼠标右键单击项目名称“HelloWorld”,在弹出的快捷菜单中选择“重命名”命令,如图2-8所示,输入新的项目名称。

图2-7 HelloWorld解决方案资源管理器

图2-8 项目管理右键菜单

3.编写代码

创建应用程序项目时,系统自动创建名称为“Form1”的Windows窗体,要给Windows窗体书写代码可以直接在Windows窗体设计器上单击鼠标右键,在弹出的快捷菜单中选择“查看代码”命令,也可以使用快捷键“F7”来打开代码编写窗口,如图2-9所示。接下来使用Label控件,在Windows窗体显示“Hello World”字符串。

图2-9 代码窗口

(1)打开Form1的窗体设计器,在左侧工具栏菜单“通用控件”中单击“Label”控件,然后把光标移到Form1的窗体设计器上单击,将为当前窗体添加一个“Label”控件,如图2-10所示。

图2-10 Form1窗体

(2)按“F7”键打开代码编写窗口,如图2-9所示。

(3)在代码窗口中输入如下代码:

    01   private void Form1_Load(object sender, EventArgs e)
    02          {
    03             label1.Text = "HELLO WORLD"; //赋值显示
    04          }

4.保存

代码书写完成后,需要对所做操作进行保存。Visual Studio 2010提供了多种保存方法,此处介绍两种常用方法,可以单击工具栏中的“保存”按钮进行保存,也可能使用快捷键“Ctrl+S”进行保存。

5.运行

Windows应用程序已经完成,可以通过运行来查看效果。按“F5”键或选择菜单栏上的“调试”→“启动调试”命令来运行程序,如图2-11所示。

图2-11 Windows应用程序运行窗口

2.3.2 创建Web应用实例

在本节将讲解如何创建一个Web应用程序。

1.创建Web应用程序

创建Web应用程序步骤:

(1)启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。

(2)选择“文件”→“新建”→“项目”,“新建项目”对话框。

(3)在“新建项目”对话框的“已安装的模板”窗格中选择项目的类型,此处选择“Visual C#”,然后选择“Web”,表示创建的是“Web”应用程序类型。

(4)在“模板”窗格中选择“ASP.NET Web应用程序”,如图2-12所示。在“名称”文本框中输入项目名称“Hello World”,“位置”下拉列表框中显示了解决方案保存位置,可以单击“浏览”按钮更改保存位置。

图2-12 新建Web应用程序

(5)单击“确定”按钮,将创建名称为“Hello World”的“Web”应用项目。

2.编写代码

创建Web应用程序项目时,系统会自动在解决方案管理器中添加名称为“Default”的Web页。Web页代码分为前台代码和后台代码,前台代码一般指的是网页代码,如HTML、JavaScript等。这里主要介绍后台代码编写。代码窗口打开方法与Windows应用程序代码窗口相同,以直接在Web页设计器上单击鼠标右键,在弹出的快捷菜单中选择“查看代码”命令,也可以使用快捷键“F7”来打开代码编写窗口。接下来也在Web页上显示“Hello World”。

(1)双击解决方案管理器中的“Default.aspx”,在窗口下方选择“设计”,然后从左侧工具栏菜单“标准控件”中拖动“Label”控件到Default.aspx页面上。

(2)按“F7”键打开代码编写窗口,如图2-13所示。

图2-13 Web页代码窗口

(3)在代码窗口中输入如下代码。

    01   protected void Page_Load(object sender, EventArgs e)
    02          {
    03             Label1.Text = "Hello World";
    04          }

3.保存

代码书写完成后,需要对所做操作进行保存。保存方法同Windows应用程序项目。

4.运行

按“F5”键或选择菜单栏上的“调试”→“启动调试”命令来运行程序。运行Web项目时,Visual Studio 2010自动打开一个端口来对Web项目进行调试运行。运行结果如图2-14所示。

图2-14 Web应用运行结果

2.3.3 创建控制台应用程序

下面来介绍如何使用C# 4.0创建控制台应用程序。

1.创建控制台应用程序项目

创建控制台应用程序项目在第1章有过简单介绍,此处详细讲解创建控制台应用程序项目的操作步骤。

(1)启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。

(2)选择“文件”→“新建”→“项目”命令,弹出“新建项目”对话框。

(3)在“新建项目”对话框的“已安装的模板”窗格中选择项目的类型,此处选择“Visual C#”,然后选择“Windows”。

(4)在“模板”窗格中选择“控制台应用程序”。在“名称”文本框中输入项目名称“Hello World”,“位置”下拉列表框中显示了解决方案保存位置,可以单击“浏览”按钮更改保存位置。

(5)单击“确定”按钮,将创建名称为“Hello World”的控制台应用程序项目。

2.让控制台应用程序向你打个招呼

控制台应用项目创建完毕之后,在“解决方案管理器”的文件结构中,可以看到已经创建好的一个Program.cs文件。在该文件中,可以编写控制台应用程序的主函数代码,来向你打个招呼。操作方法如下:

(1)双击解决方案管理器中的“Program.cs文件”,打开代码编写窗口。

(2)在代码窗口中输入如下代码。

    01   using System;
    02   using System.Collections.Generic;
    03   using System.Text;
    04
    05   namespace Hello_World
    06   {
    07      class Program
    08      {
    09          static void Main(string[] args)
    10          {
    11            System.Console.WriteLine("hello world!"); //将hello world!字符输出到控制台
    12            System.Console.ReadLine();                //读取Enter键之后,关闭控制台应用程序
    13          }
    14      }
    15   }

3.设置启动项目

如果解决方案要有多个项目,必须为解决方案设置一个启动项目,在解决方案资源管理器中,选择对应的项目名称,用鼠标右键单击,在弹出的快捷菜单中选择“设置为启动项目”命令,如图2-15所示。设置启动项目后,该项目名称将以黑色粗体显示。

图2-15 设置启动项目

4.运行控制台项目

代码编写完成之后,按“F5”键或者单击工具栏中的“启动调试”按钮,运行程序。

2.4 创建类库

在介绍创建类库之前,先简单介绍类的相关知识。类,顾名思义,就是一些拥有相同属性的数据的集合。例如,现实中的人类、动物类、车类等。所谓类库就是指一个类的集合。创建类库使得程序开发人员可以更加方便、重复地使用类,更易于程序功能扩展和多平台共享。Visual C#给程序开发人员提供大量的系统类库,通过调用系统类库开发人员可以更加快速、高效地开发应用程序,本节重点介绍自定义类库项目的创建和调用。

2.4.1 创建类库项目

下面将介绍如何创建类库项目。

(1)启动Visual Studio 2010,选择“开始”→“程序”→“Microsoft Visual Studio 2010”→“Microsoft Visual Studio 2010”命令。

(2)选择“文件”→“新建”→“项目”命令,弹出图1-9所示“新建项目”对话框。

(3)在“新建项目”对话框的“已安装的模板”窗格中选择项目的类型,此处选择“Visual C#”,然后选择“Windows”,表示创建的是“Windows”应用程序类型。

(4)在“模板”窗格中选择 “类库”。在“名称”文本框中输入类库项目名称“My_Library”,“位置”下拉列表框中显示了解决方案保存位置,可以单击“浏览”按钮更改保存位置。

(5)单击“确定”按钮,将创建名称为“My_Library”的项目,如图2-16所示。

图2-16 类库解决方案管理器

类库项目创建完成后,系统自动给Solution Explorer(解决方案管理器)的项目中增加两个C#类,第一个是AssemblyInfo.cs,第二个是Class1.cs。在此不讨论AssemblyInfo,重点介绍Class1.cs。

双击Class1.cs,就能看到一个名称空间My_Library,下面是Class1.cs文件中的代码:

    01   using System;
    02   using System.Collections.Generic;
    03   using System.Linq;
    04   using System.Text;
    05
    06   namespace My_Library
    07   {
    08      public class Class1
    09      {
    10      }
    11   }

(6)给类增加一个方法。

创建类库时虽然Visual Studio添加了Class1.cs类,但还没有在类中编写功能代码,还不具有任何功能,现在来增加一个方法,代码如下:

    01   using System;
    02   using System.Collections.Generic;
    03   using System.Linq;
    04   using System.Text;
    05
    06   namespace My_Library
    07   {
    08      public class Class1                         //声明类
    09      { public void OutPut(){
    10             Console.WriteLine("类库输出成功!");
    11          }
    12          public static void main(String[]args) {
    13             Class1 myclass = new Class1();       //实例化类
    14             myclass.OutPut();                    //输出
    15          }
    16        }
    17   }

(7)生成类库dll。

单击“创建”菜单,选择“创建My_Libray”将编译类文件,编译完成后会在项目文件的in\debug目录生成名称为My_Libray的dll文件。

2.4.2 定义引用

类库创建完成后,如果想在项目中调用类库,首先需要引用类库,打开2.3.3节创建的控制台应用项目,在解决方案管理器中用鼠标右键单击“引用”,在弹出的快捷菜单中选择“添加引用”命令,如图2-17所示。在弹出的对话框中选择“Browse”选项卡,在选项卡中找到所生成的类库文件所在的目录,选择“My_Library”,单击“OK”按钮,如图2-18所示。

图2-17 添加引用

图2-18 “Add Reference”对话框

2.4.3 调用类库的功能

如果需要在程序文件中使用类,除了在解决方案中添加引用外,还需要在程序文件中引用名称空间和初始化类对象,所需操作如下:

(1)引用名称空间:using My_Library。

(2)创建一个Class1的对象:Class1 myclass = new Class1()。

(3)调用方法:

    01   using System;
    02   using System.Collections.Generic;
    03   using System.Linq;
    04   using System.Text;
    05   using My_Library;                                    //引用类的命名空间
    06
    07   namespace helloworld
    08   {
    09      class Program
    10      {
    11          static void Main(string[] args)
    12          {
    13             Class1 myclass = new Class1();            //实例化类
    14             myclass.OutPut();
    15             Console.Read();
    16          }
    17      }
    18   }

【代码解析】第13行代码用来实例化Class1类为myclass。

2.4.4 运行

代码编写完成之后,按“F5”键或者单击工具栏中的“启动调试”按钮,运行结果如图2-19所示。

图2-19 调用类库输出结果

2.5 C# 4.0中的新特性

本节将介绍C# 4.0中的两个新特性——代码片段(Code Snippets)、智能感应(Generate From Usage)。

2.5.1 代码片段(Code Snippets)

代码片段(Code Snippets)是一小段针对某一功能的、可多次使用的代码。它是Visual Studio 2010具有的自动完成特征,使用智能感应功能(IntelliSense)集成的Code Snippets可以大大提高开发者的工作效率,因为开发者只需要按几个键就可以完成工作,使用起来非常简单方便。

1. 快速给类添加属性

通用的代码片段可以使用户非常方便地给类添加属性。只需往Visual Studio源码中键入prop,如图2-20所示。

图2-20 输入prop属性

然后按键盘上的“Tab”键两次就可以添加一个属性。系统自动添加属性基本结构,程序开发人员减少了代码的输入工作量,节省了代码书写时间,如图2-21所示。

图2-21 prop属性

2. 快速语句录入

Snippets与许多代码通用,它们共同使用IntelliSense功能中的关键词。只要选择关键词,按键盘上的“Tab”键两次就可以插入Snippets。例如if、for、foreach、switch、while和using等。下面以for为例,在程序中开发人员经常需要使用for循环,每次都要重复去写相同的代码,而使用Code Snippets只需按两下“Tab”键可以自动生成其格式。首先在程序中输入“for”短语,然后两次按下键盘“Tab”键,自动生成如图2-22所示的“for”片段代码。

图2-22 for片段代码

2.5.2 智能感应(Generate From Usage)

Generate From Usage是Visual Studio 2010的新功能,其能让程序开发人员先使用未定义的类别与成员,事后,再去定义它。例如,开发人员可以在程序中先使用类、结构、方法、属性、变量等,然后再进行定义,这个特性使得Visual Studio对测试驱动开发的支持更加强大,它可以减少用户的代码输入量,另外这种特性通过Generate From Usage产生程序的同时,焦点仍会保持在原本的程序窗口位置,使用起来十分方便。

下面介绍Generate From Usage的使用。

(1)在程序中使用未经定义的类,程序代码如下:

    01   namespace helloworld
    02   {
    03      class Program
    04      {
    05          static void Main(string[] args)
    06          {
    07            var test = new MyClass(firstParameter: "Hello",
                secondParameter: 0);
    08             test.FirstProperty = 1;
    09             test.MyField = 2;
    10             int value = test.MyMethod(100);
    11          }
    12      }
    13   }

由于MyClass这个类还没定义,所以可以看到在这个类下方有红线标注高亮提示,如图2-23所示。

图2-23 智能感应提示

选中“MyClass”,单击下拉箭头,选择“生成简单的类”或者按“Ctrl+.”组合键,Visual Studio 2010就可以自动为用户生成这个类了,利用相同的方法,可以自动生成相关属性和方法。生成的完整代码如下:

    01   namespace helloworld
    02   {
    03      class MyClass
    04      {
    05          private string firstParameter;                    //字符变量定义
    06          private int secondParameter;                      //数值变量定义
    07
    08          public MyClass(string firstParameter, int secondParameter)
    09          {
    10             // 初始化变量
    11             this.firstParameter = firstParameter;
    12             this.secondParameter = secondParameter;        //赋值
    13          }
    14
    15          public int FirstProperty { get; set; }
    16
    17          public int MyField { get; set; }
    18
    19          internal int MyMethod(int p)
    20          {
    21             throw new NotImplementedException();
    22          }
    23      }
    24   }

2.6 小结

本章讲解了C#基础知识,首先是C#语言的发展历史、C#语言的特点和强大的功能,然后详细介绍了C#创建解决方案和项目,接着以“Hello World”实例向读者展示“Windows应用程序”、“Web应用程序”、“控制台应用程序”的创建方法。还介绍了C#中类库的创建和使用,最后介绍了C# 4.0中的新特性——“代码片段(Code Snippets)”。

2.7 练习

一、填空题

1.C#是由C和(  )发展而来的编程语言。

2.C#是一种最新的、面向(  )的编程语言。

3.创建“Windows”应用程序项目时,Visual Studio 2010会自动创建一个名称为(  )的Windows窗体。

4.类库是一个类的(  )。

5.类库生成后的扩展名是(  )。

二、简答题

1.简述C#语言的特点。

2.什么是类库?

3.如何创建类库?

三、上机题

1.创建Windows应用程序,在窗体上输出“欢迎使用Visual Studio 2010 C#”。

2.创建Web应用程序,在页面上显示“欢迎使用Visual Studio 2010 C#”。

3.创建控制台应用程序,输出“欢迎使用Visual Studio 2010 C#”。

4.用C#创建一个名称为Founction_Library的类库,要求在类库中写一个输出函数my_output(),其功能是输出字符串“恭喜你调用Founction_Library成功!”,且在项目中调用所创建的类库。