【asp源码栏目提醒】:网学会员--在 asp源码编辑为广大网友搜集整理了:认识C# - 编程语言绩等信息,祝愿广大网友取得需要的信息,参考学习。
第1章 认识C 主要内容 1 什么是.NET。
2 第一个简单的控制台应用程序。
3 创建简单的Windows应用程序。
4 对象、属性和方法给对象的属性赋值。
5 Click事件及Click事件处理程序。
学习目标 1 熟悉Visual Studio .NET集成开发环境IDE。
2 学会创建、编译和执行简单的.NET应用程序。
3 使用输入和输出。
4 初步认识和了解窗体、控件、事件和方法。
1.1 场 景 引 入 什么是.NET什么是.NET Framework它们有什么关系.NET与Java有相同点吗有不同点吗C与Java、C、C、Visual Basic有关系吗本章使你对这些问题有一个基本的认识。
同时本章还讨论如何使用C创建最简单的控制台应用程序如何使用C创建最简单的Windows应用程序如何在程序中使用输入和输出。
1.2 什么是.NET .NET是微软公司的新战略它包含微软公司对未来的核心战略、规划和洞察力。
所有微软公司的产品都将围绕这个战略开发。
此战略的核心就是.NET Framework该框架提供了全面支持.NET的核心技术。
.NET Framework是一种新的计算平台它简化了在高度分布式Internet环境中的应用程序开发。
.NET Framework具有两个主要组件公共语言运行库和.NET Framework类库。
.NET用来解决编程人员面临的许多问题 它负责处理在创建大型、可靠的应用程序时的大量艰辛工作。
它允许程序员统一两种架构——在本地机器上运行的应用程序和通过Web访问的应用程序。
它减少了与编程框架相关的传统开销——不再需要高性能编程语言来编写复杂的代码以获取高速的.NET程序。
它允许不同语言的程序员在同一个应用程序中协同工作。
它开始兼容各种最终用户工具。
包括桌面、PDA 和手机。
最终将实现使开发人员能够创建出摆脱设备硬件束缚的、能够在各种操作系统上运行的应用程序能够轻松地实现互联网的连接。
总之.NET提供了一种更简单、更快捷、更廉价的方式来获得高效的程序。
在某些方面.NET很像Java。
实际上Java的口号“一旦编写出来就能在任何地方运行” 也很符合.NET的原则。
不过.NET并不是Java的克隆微软的方法与之并不相同。
Java是“一种语言多个平台”而.NET是“多种语言一个平台就目前而言”由于微软想扫除进入.NET的障碍因此计划让使用任何语言的人都可对它进行访问。
目前Visual Studio .NET提供的C和Visual Basic .NET是.NET下的两种编程语言。
微软的.NET策略更像是一场军事战役。
它运用对Windows平台的理解首先攻占Windows平台。
当它从Windows平台中脱颖而出后就可以“侵袭”别的平台。
例如Linux证明.NET应用程序可以从一个平台移植到另一个平台上。
“侵袭并征服了 Linux”后它又可转向另外的平台例如Solaris。
简而言之.NET将操作系统平台划分为层次结构。
无论是哪种平台例如Windows、Linux等都可以分成两个层次程序设计层和执行层.NET开发人员是为程序设计层而不是执行层编写软件将来不管占统治地位的是Windows平台还是Linux平台或者是其他出乎意料的系统都将遵循这种统一一致的模式。
可以将.NET Framework的讨论分解成以下几部分。
MS中间语言MS Intermediate LanguageMSIL在执行用户编写的所有程序代码前应将其编译成更抽象、精简的形式。
程序员可以使用任何.NET语言编写代码包括VB、C、JScript和其他大约20种语言。
这些代码都会编译为MSIL这种.NET的通用语言。
.NET在这个层次的操作无须用户干涉因此本书不讨论它。
公共语言运行库Common Language RuntimeCLR这是一个复杂的系统用于在计算机上执行MSIL代码。
公共语言运行库负责执行与Windows和IIS交互时所涉及的全部实质性任务。
这个层次也是在后台进行的本书也不涉及。
.NET Framework类库.NET Framework Class Libraries它是一个综合性的面向对象的可重用类型集合可以使用它开发多种应用程序这些应用程序包括传统的命令行控制台应用程序或图形用户界面GUI应用程序也包括基于
ASP.NET 的Web应用程序如Web窗体和XML Web Services。
以后课程将介绍这些功能。
.NET语言.NET Language.NET语言是符合一些特殊结构要求由公共语言规范定义的编程语言能够编译成MSIL。
可以用任何一种.NET语言来开发.NET应用程序例如C或VB.NET没有任何限制也可以用多种.NET语言来开发.NET应用程序。
ASP.NET使程序员可以使用.NET Framework创建Web应用程序。
这个代码模块扩展了Internet Information ServerIIS使之能为Web页面执行.NET Framework。
Web服务虽然Web服务不是严格意义上的.NET的一部分但.NET明确地支持它。
它们是可以通过Web访问的组件可以是任何主题例如新闻标题、天气预报、股票走势、病毒预防和操作系统更新等。
1.3 .NET应用程序的编译 1.3.1 从用户代码到机器代码 读者也许已经知道计算机能够识别以二进制形式表示的任何事情二进制位可以构成表示指令和数据的1与0的序列。
因此人们热衷于用“数字”一词来描述任何事情即使它们与计算机的关系很小。
通常把这种二进制指令称为机器码。
很明显对大多数人来说记住用于打印“Good Morning”时的0、1代码序列是不可能的更不用说要记住定义复杂Web应用程序的代码了。
因此人们使用用户级编程语言相对来说比较高级的语言通过类似英语的单词来编写代码。
第1章 认识C 一旦用高级语言编写了程序代码就需要将其转换为机器码这一转换过程称为编译编译器软件可以将人类可读指令编译成机器可读指令。
编译过程包括将本机环境信息写入经编译的程序代码这一过程因此编译后的程序代码可以最高效地利用计算机的所有可用资源。
多年来有以下两种编译代码类型它们的编译过程完全不同。
预编译型代码是在编码完成后并在运行前进行编译的代码。
对这种代码由于编译器会花时间分析全部的代码和要运行它的机器因此代码能以很快的速度执行。
不过由于预编译的代码是针对某一计算机的因此除非仍在该计算机上使用编译过的代码否则需要将另一台计算机设成与执行编译的计算机相同的系统和资源。
解释型代码是边执行在用户请求页面时、边编译的代码。
这种代码执行较慢因为需要为每个请求编译代码且系统没有机会全面优化所编写的代码。
不过其优点是解释过程可以调整以适应运行代码的机器。
所以开发人员在选择编程语言时要做出取舍。
可以选择较慢的解释型代码以适应运行代码的机器也可以选择运行较快速的预编译代码但不能充分利用机器的优势。
1.3.2 中间语言介绍 .NET在编译时采用两步来解决代码与机器的交互问题。
编写在.NET Framework上运行的程序后通常用C或VB. NET编写需要在使用这些程序之前编译这些可读代码。
.NET编译器的设计方式意味着它并没有把我们带入会引起可移植性问题的二进制码。
事实上.NET编译器将程序代码编译成称为MS中间语言MSIL的特殊格式。
由于MSIL结构不需要像源代码那样易读因此编译过程包括了一些优化操作。
但是并没有针对某台机器进行优化。
因此MSIL具有一般性的优化性能并可以移植到任何.NET服务器上。
当用户执行MSIL代码时例如请求
ASP.NET页面将其传给CLR公共语言运行库CLR是.NET Framework的另一个核心。
CLR使用JITJust-In-Time编译器将代码编译成真正的机器码并对程序进行最后的且与机器相匹配的优化以使程序能在其所在的计算机上以尽可能快的速度运行。
通过MSIL和CLR组合使用带来了前述两种编译代码的综合性优点即获得了预编译码的结构优化特性和解释码的可移植性。
更为重要的是MSIL本身是与机器无关的。
因此可以在装有CLR的任何一台计算机上运行。
实际上一旦编写出.NET程序代码并将其编译就可以将它复制到装有CLR的任何计算机并在该计算机上执行。
虽然目前的CLR只有与Windows兼容的版本但现在已着手建立基于其他操作系统的版本。
在Web上搜索与Mono Project有关的信息就可以找到更多的CLR版本。
MSIL可以由任何遵循CLS公共语言规范的可读语言生成。
C、VB.NET和JScript.NET是“与.NET兼容的”三大语言。
另外MSIL编译器还支持其他20多种语言。
因此可以在应用程序内部交替地使用这些兼容语言。
一旦将一套文件编译成MSIL它们都将统一为一种语言。
这种灵活性允许不同的小组在同一个Web站点上用不同的语言协同工作。
1.4 .NET Framework平台体系结构 C 程序在 .NET Framework 上运行后者是Windows的一个不可或缺的组件包括一个称为公共语言运行库CLR的虚拟执行系统和一组统一的类库。
用 C 编写的源代码被编译为一种符合 CLI 规范的中间语言IL。
IL代码与资源例如位图和字符串一起作为一种称为程序集的可执行文件存储在磁盘上通常具有的扩展名为 .exe 或.dll。
执行 C 程序时程序集将加载到 CLR 中。
然后 CLR 就会执行实时JIT编译以将 IL 代码转换为本机机器指令。
由 CLR 执行的代码有时称为“托管代码”它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。
如图1.1所示阐释了 C 源代码文件、.NET Framework 类库、程序集和 CLR 的编译时与运行时的关系。
图1.1 C源文件、.NET Framework 类库、程序集和 CLR 的编译时与运行时的关系 1.5 C语言 C是一种简洁、类型安全的面向对象的语言开发人员可以使用它来构建在.NET Framework 上运行的各种安全、可靠的应用程序。
可以使用 C 来创建传统的 Windows 客户端应用程序、XML Web Services、分布式组件、客户端/服务器应用程序、数据库应用程序等。
C 语言从 C 和 C 语言演化而来C 同时具备VB“应用程序快速开发”RAD 语言的高效率和 C 固有的强大能力。
同时它吸收了Java语言的特点和精华熟悉Java的人就觉得它很像Java。
C 语法表现力强而且简单易学。
C 的大括号语法使任何熟悉 C、C 或 Java 的人都可以立即上手。
了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用 C 高效地进行工作。
C 语法简化了 C 的诸多复杂性并提供了很多强大的功能例如委托、Lambda 表达式、属性等这些都是C语言的创新都是 Java 所不具备的。
C 的生成过程比 C 和 C 简单比 Java 更为灵活。
没有单独的头文件也不要求按照特定顺序声明方法和类型。
C 源文件可以定义任意数量的类、结构、接口和事件。
1.6 第一个简单的控制台应用程序 1.6.1 任务1.1打印客户信息 ① C程序的基本结构。
②控制台的输入和输出。
③如何创建空的项目。
④如何向项目中添加代码文件。
编写程序在命令窗口中输出客户姓名和电话号码如图1.2所示。
图1.2 打印客户信息 第1章 认识C 1. 创建空的项目 1 启动Visual Studio。
2 从【文件】菜单中选择【新建】【项目】命令打开【新建项目】对话框。
3 在左边的【项目类型】窗格中展开Visual C选择Windows然后在右边的【模版】窗格中选择【空项目】Visual Studio 2005及之后的版本中可选择【控制台应用程序】以直接获得代码文件。
4 在【名称】文本框中输入“Customerinfo”作为该项目的名称。
在【位置】文本框中输入要将项目保存到的目录或单击【浏览】按钮以选择目录。
5 单击【确定】按钮。
Visual Studio将创建一个新项目“Customerinfo”并显示解决方案资源管理器。
若没有显示解决方案资源管理器请选择【视图】【解决方案资源管理器】或按CtrlAltL键解决方案资源管理器即可出现。
2. 向项目中添加代码文件 1 在解决方案资源管理器中右击解决方案下的Customerinfo项目在弹出的快捷菜单中选择【添加】【新建项】命令。
2 在【项目类型】窗格中展开Visual C选择【代码】然后在右边窗格中选择【代码文件】。
在【名称】文本框中输入“Customerinfo”。
3 单击【添加】按钮。
然后在空的Customerinfo代码文件中输入如下代码 //第一个简单的C控制台应用程序 class Customerinfo static void Main System.Console.WriteLinequot姓名吴家豪quot //输出姓名吴家豪 System.Console.WriteLinequot电话020-85623891quot //输出电话 3. 测试程序 1 按CtrlF5键运行该应用程序并验证在命令行窗口中已显示如图1.2所示的信息。
2 按任意键结束程序运行。
1 代码注释。
第一行是注释语句 //第一个简单的C控制台应用程序 其中“//”字符将这行的其余内容转换为注释内容。
可以将整行作为注释或者可以在其他语句的结尾追加一个注释如下所示 System.Console.WriteLinequot姓名吴家豪quot //输出姓名吴家豪 程序员在程序中加入注释可以提高程序的可读性使程序易于阅读和理解。
计算机在执行程序时不会执行注释行。
注释有两种以“//”开始的注释叫“单行注释”它只对当前行有效以“/”开始并以“/”结束的注释称为多行注释。
例如 / 这是多行注释 第一个简单的C控制台应用程序 / 2 定义类。
C的每一个程序包括至少一个自定义类。
这些类称为程序员自定义类或用户自定义类。
在C中用关键字class引导一个类的定义其后接着类的名称本例中是Hello。
关键字是C的保留字。
class Customerinfo后的左侧“”表示开始一个类的定义对应的右侧“”用来结束类的定义大括号必须成对出现否则会出现编译错误。
例如 class Customerinfo ... 3 Main方法。
C程序必须包含一个 Main 方法而且必须定义为static void MainMain方法是程序的入口点程序控制在该方法中开始和结束。
该方法用来执行任务并在任务完成后返回信息。
void关键字表明该方法执行任务后不返回任何信息。
Main方法在类的内部声明它必须具有 static 关键字表明是静态方法。
在“打印客户信息”任务中Main方法是Customerinfo类的成员。
左侧的“”开始定义方法的主体内容对应的右侧“”用来结束方法的定义。
4 输入和输出。
程序通常使用.NET框架的运行时库提供的输入/输出服务。
Main方法中有语句 System.Console.WriteLinequot姓名吴家豪quot 该语句的作用是使计算机打印双引号之间的字符串我们通常将双引号之间的字符序列称为字符串。
该语句中使用了WriteLine方法它是类库中Console类的输出方法之一WriteLine方法在命令窗口中显示一行文字后自动将光标移动到下一行。
与输出方法相对类库中的Console类还包含了输入方法例如下面的代码段使用了ReadLine方法 string str str System.Console.ReadLine System.Console.WriteLinestr ReadLine方法是运行库中Console类的输入方法之一它用于输入一字符串按Enter键结束输入。
其他Console方法用于不同的输入和输出操作。
如果在程序开头包含以下using语句 using System 则可直接使用Console类和方法而无须使用完全限定名。
例如 Console.WriteLinequot姓名吴家豪quot using System语句引用一个由Microsoft .NET框架类库提供的、名为System的命名空间。
此命名空间包含Main方法中引用的Console类。
命名空间提供了一种分层方法来组织一个或多个程序的元素。
using语句可以非限定地使用属于命名空间的类。
“Customerinfo”程序代码中使用Console.WriteLine作为System.Console.WriteLine的简写形式。
5 编译并运行程序。
从IDE集成开发环境编译并运行程序。
按F5键生成并运行也可选择【调试】菜单中的【启动】命令。
1.6.2 独立实践打印邮寄地址 1 编写一个程序用于打印以下格式的邮寄地址。
第一行姓名 第二行街道门牌号 第三行城市名邮政编码 2 修改上面的程序使其为邮寄地址添上边框。
第1章 认识C 1.7 创建简单的Windows应用程序 前一个程序在命令窗口中显示输出但大多数C程序使用窗口或对话框显示输出。
1.7.1 任务1.2在对话框中显示客户信息 ①使用using语句。
②在对话框中显示信息。
③如何添加引用。
④如何设置输出类型。
编写程序在消息框中显示客户姓名和电话号码 如图1.3所示。
1 创建一个空的项目WinCustomerinfo步骤见任务1.1。
2 向项目中添加如下代码文件步骤见任务1.1 using System.Windows.Forms class WinCustomerinfo static void Main MessageBox.Showquot姓名吴家豪n电话020-85623891quot 3 添加引用。
① 在解决方案资源管理器中右击WinCustomerinfo项目下的【引用】在弹出的快捷菜单中选择【添加引用】命令。
② 选择.NET选项卡拖动滚动条找到System.Windows.Forms然后双击它。
4 设置输出类型。
右击WinCustomerinfo项目在弹出的快捷菜单中选择【属性】命令。
在WinCustomerinfo项目的属性页中将输出类型设置为【Windows应用程序】。
5 按F5键运行该应用程序可得到如图1.3所示的输出。
6 关闭对话框并返回Visual Studio。
1 C程序员既要考虑自定义类也要考虑重用框架类库中的类。
C程序中要使用类库中的类必须添加包含要使用的类库的程序集的引用。
类库中的每个类都从属于特定的命名空间我们使用using语句定位所使用类库中的类的命名空间以便在程序中直接使用该类。
例如要使用类库中的MessageBox类由于MessageBox类在命名空间System.Windows.Forms中我们在程序中必须使用using语句来定位MessageBox类的命名空间 using System.Windows.Forms 这样在我们的程序中就可直接使用MessageBox类如 MessageBox.Showquot姓名吴家豪n电话020-85623891quot 而不需要使用完全限定名 System.Windows.Forms.MessageBox.Showquot姓名吴家豪n电话020-85623891quot 缺乏using语句而在程序中又未使用全限定形式的语句时将会发生编译错误“MessageBox未定义”。
例如如果在程序的头部未使用语句using System.Windows.Forms 则在程序中调用MessageBox.Show方法时必须使用完全限定名 图1.3 在消息框中显示 客户信息 System.Windows.Forms.MessageBox.Showquot姓名吴家豪n电话020-85623891quot 2 在消息框中显示消息。
在Main方法中语句 MessageBox.Showquot姓名吴家豪n电话020-85623891quot 表明一个对类MessageBox中的方法Show的调用它的作用是在对话框中显示一字符串。
方法Show是MessageBox类中的一个特殊的方法称为静态方法。
一般通过在类名称后加上点操作符“.”和方法名称来调用它们。
1.7.2 任务1.3显示图像 ①创建Windows窗体。
②认识属性窗口和“解决方案资源管理器”窗口。
③了解如何拖动控件如窗体上的图片框、如何设置其属性。
创建一个Windows应用程序见图1.4当运行程序时在图片框中显示图像。
1. 创建 Windows应用程序项目 1 启动Visual Studio。
2 在【文件】菜单中选择【新建】【项目】命令打开【新建项目】对话框。
3 在左边的【项目类型】窗格中选择Visual C然后在右边的窗格中选择【Windows应用程序】。
注意如果已经打开了解决方案请选择【为解决方案创建新目录】。
在实际项目中经常会在同一个解决方案中有多个项目。
但是在本任务中应关闭任何已打开的解决方案并随项目一起创建一个新的解决方案使当前所执行的操作与任何现有窗体、数据集等不发生任何冲突。
4 在【名称】文本框中输入“PictureViewer”作为该项目的名称。
在【位置】文本框中输入要将项目保存到的目录或单击【浏览】按钮以选择目录。
5 单击【确定】按钮。
Visual Studio将创建一个新项目并在Windows窗体设计器中显示新窗体Form1。
如图1.5所示为集成开发环境窗口应具有的外观。
图1.5 集成开发环境窗口的外观 如果开发者的屏幕与上面的图示不太一样可在【窗口】菜单上单击“重置窗口布局”。
如果缺少任何窗口可在【视图】菜单中选择【属性窗口】或【解决方案资源管理器】。
如果有多余的窗口打开可单击右上角的“关闭”x按钮。
中间是设计器窗口。
通过此窗口可以使用窗体并编辑代码。
当前此窗口在“窗体编辑器”中显示一个窗体。
在此窗口的顶部有一个选项卡“Form1.cs 设计”选项卡后缀名是.cs。
图1.4 在图片框中显示图像 第1章 认识C 右上角是【解决方案资源管理器】窗口在此处显示解决方案中的所有文件。
如果单击某个文件则【属性】窗口中的信息将发生改变。
如果双击某个代码文件在 Visual C 中以 .cs 结尾则该代码文件或用于该代码文件的设计器将打开。
右下角是【属性】窗口可通过此窗口.