1、Visual C#程序设计,第1讲 Visual C#概述,学习目标,了解什么是.NET与C# 熟悉Visual Studio.NET集成开发环境(IDE) 学会使用C#创建、编译和执行简单.NET应用程序 掌握C#程序结构与书写格式 使用控制台输入和输出。 初步认识和了解窗体、控件、事件和方法。,重点与难点,熟悉Visual Studio.NET集成开发环境(IDE) 学会在IDE下,使用C#创建、编译和执行简单的.NET应用程序 掌握C#程序结构与输入、输出方法。,内容索引,1,3,案例1,案例2,2,.NET简介,1.1 .NET框架与C#简介 P2-3,.NET Framework,.
2、NET: 微软为开发应用程序而创建的一个强大的开发平台。可以开发出运行在Windows上的几乎所有应用程序。 从程序员的眼光看: .NET是一组用于建立Web服务器应用程序和Windows桌面应用程序的软件组件,用该平台建立的应用程序在公共语言运行库(Common Language Runtime,CLR)的控制下运行。 .NET Framework具有两个主要组件: 公共语言运行库和.NET框架类库。,1.1.1 .NET框架简介1.体系结构,各类服务支持,2NET框架类库与公共语言运行库,. NET 框架类库 又称为基础类库,是预先编写好的程序代码,提供数千个类、接口等工具供程序员直接使用
3、,可以使用它开发多种应用程序。 .NET支持的所有语言都能使用类库,任何语言使用类库的方式是一样的。 公共语言运行库(CLR) 负责管理用.NET框架类库开发的所有应用程序的运行。,VB.NET,C#,C/C+,Python,第一次编译,VB.NET 编译器,C# 编译器,Python 编译器,C/C+ 编译器,第二次编译,CLR中的即时编译器JIT,MSIL中间代码,本地可执行代码,各种编程语言编译器负责完成编译工作的第一步,即把源代码转换为一种中间代码(Microsoft Intermediate Language,MSIL)。,MSIL还不能在计算机上运行,还要通过第二步编译工作将MSI
4、L变为真正的机器语言,即时编译器(Just In Time,JIT)完成。,3. 中间语言(MSIL)和JIT即时编译,1.1.2 认识C#语言,C和C它们对组件和Web开发的有限支持已经不符合时代潮流了。 在很多应用领域,使用这类语言已经不多。,1.1.2 认识C#语言,Java是SUN公司在90年代发布中期发布的一种强大的通用程序设计语言 它以C和C+为基础,加入了更多更加纯粹的面向对象特性; 用JAVA编写的程序可以运行在任何平台上跨平台:JAVA程序运行在JAVA虚拟机上,可以实现“一次编写,到处运行”。 C#可以说是微软为了与JAVA抗衡而开发。,1.1.2 认识C#语言,C# (C
5、 Sharp)是一种现代的面向对象(微软称面向组件)的程序设计语言,它是专门为生成运行在.NET 框架上的企业级应用程序而设计的。 微软对C#的定义:C#是一种安全的、现代的、简单的,由C和C衍生而来的面向对象的编程语言。它牢牢根植于C和C语言之上,并可以立即被C和C的使用者所熟悉。C#的目的就是综合Visual Basic的高生产率和C的行动力。,1.1.2 认识C#语言,使用 C# 能做什么?,本学期内容为通过 C#控制台应用程序 学习 C#语法、编程逻辑,C#,桌面应用程序 WinForms,Internet 应用程序 ASP.NET,Windows 服务程序 Windows Servi
6、ce,Web 服务程序 Web Service,1.1.3. 本课程开发的应用程序,IDE上直接支持的应用程序有很多种。选取最简单的两种举例。 创建控制台应用程序 控制台应用程序:以字符界面(DOS界面)为运行环境,可编译为独立的可执行程序,通过命令行运行,在字符界面上输入输出。 创建Windows应用程序 基于Windows窗体的应用程序,是一种基于图形界面接口GUI的应用程序,一般是用户计算机在本地运行(区别于Web应用程序)。,1.2 Visual Studio.NET集成开发环境,1. VS.Net集成开发环境界面(IDE),输出窗口、错误列表,1NET开发的每一个应用程序叫解决方案;
7、 2.一个解决方案包含一个或多个项目。,(2)解决方案管理器,解决方案名称,项目名称,编译后的 可执行文件,源文件:*.cs,树状目录,(1)解决方案管理器,什么是解决方案? 使用VS.NET开发的每一个应用程序称为解决方案。 一个解决方案可以包括一个或多个项目。 解决方案资源管理器以树状目录的形式列出其中的项目和文件。 什么是项目? 一个项目能解决一个独立的问题,通常是一个完整的程序模块。 一个项目包含多个项(文件、文件夹、引用、数据连接)。,(2)工具箱与服务器资源管理器(p15),“工具箱”用于向Windows应用程序或Web应用程序添加控件。 “服务器资源管理器”是Visual Stu
8、dio.NET的服务器管理控制台。,(3)属性和动态帮助,“属性”子窗口: 用于设置解决方案中各个子项的属性 。 “动态帮助” 对用户当前操作提供相关的帮助主题列表。 当用户在VS.NET环境中进行某一项操作时,“动态帮助”将搜索MSDN库(Microsoft Developer Network),查找与该操作相关的帮助主题并把它认为可能最有用的主题列在第一位。单击一个链接后,默认情况下此主题将会显示在Visual Studio .NET窗口中。 当在代码窗口中编辑源代码时,“动态帮助”窗口会显示正在输入的关键字和类的帮助主题。,(4)智能感知 (Intellisense),动态显示成员列表,
9、 动态显示该方法功能和不同用法。 1:在输入一个对象或类和一个点时, VS.NET会自动在一个小窗口中列出该对象或类可用的属性和方法。2:当使用“方法”时,VS.NET将动态显示该方法的功能和用法。,2.VS.NET集成开发环境(IDE)菜单介绍,常用菜单项介绍 1)文件: 新建:可新建项目、文件、解决方案 打开:可打开项目或文件 2)调试 启动调试:F5 开始执行(不调试)CTRLF5 单步执行:逐语句F11 逐过程 F10 设置断点:F9,案例2:一个控制台应用程序,题目描述: 创建一个控制台应用程序显示效果如右图所示:,案例2:一个控制台应用程序,using System; namesp
10、ace Hello class hellostatic void Main()Console.WriteLine(“Hello .NET“);Console.WriteLine(“Hello C#!“);,一个简单的控制台应用程序,“调试”“启动调试”或按“F5”、ctrl+F5,注释:单行注释“/”多行注释“/*/ ”,用using引用一个命名空间,定义命名空间,定义Main方法,定义类,一.涵盖知识点,1.命名空间:类的组织方式,可看作是给类进行分类的系统。 用namespace 来声明:用“using”来引用:注:引用了命名空间后,可以直接使用这个命名空间的类和方法, 如:,namesp
11、ace 命名空间名 ,using 命名空间名,Console.WriteLine(“hello world!”);,System是Visual Studio .NET中的最基本 的命名空间,在创建项目时, Visual Studio .NET平台都会自动生成导入 该命名空间,并且放在程序代码的起始处。,一.涵盖知识点,2.定义类:C#的程序至少包括一个自定义类,格式:3.Main方法: C#程序必须包含一个Main方法; 它是程序的入口点; 必须用static表示静态方法; 这里Main 类是hello类的成员,是一个函数(方法)。,Class 类名 ,一.涵盖知识点,4.输入和输出 程序使用
12、.NET运行库提供的输入输出服务, 例:语句:System.Console.WriteLine(“hello world!”); 功能:向显示屏输出双引号“”之间的字符串。 例:语句: String str; strSystem.Console.ReadLine(); 功能:输入一个字符串。,二.操作步骤,1.新建项目 文件新建项目 选择空项目或控制台应用程序 2.编写代码 3.调试运行程序 4. 保存程序,三、案例拓展:1.控制台类:Console,Console类 System命名空间所预定义的一个类; 用于实现计算机的基本输入输出。,1.控制台类:Console,A、 输出方法 四种格式
13、: 格式一:Console.WriteLine(); 功能:输出一个换行符 格式二: Console.WriteLine(“字符串”); 例: Console.WriteLine(“欢迎学习C#!”); 格式三:Console.WriteLine(“格式字符串”,输出列表); 例: string course=”C#”; Console.WriteLine(“欢迎学习0!”,course);,1.控制台类:Console,例如:Console.WriteLine(“0:1: 2“,10,20,30);Console.WriteLine(“01,2“,“这两个数是:“,10,20);,注意: 1
14、.格式字符串中的占位符个数必须与输出列表中的输出项个数相等; 2.占位符必须以0开始,依次标识为0,1,2, 0对应输出列表中的第一个输出项, 1对应输出列表中的第二个输出项,1.控制台类:Console,控制台输出示例 输出结果:还可以使用“”连接符输出字符串。 例如: Console.Write(“欢迎学习“ + course + “,“); Console.WriteLine(“欢迎来到“ + platform + “世界“);,1.控制台类:Console,B、输入方法 Read与ReadLine方法的功能是接受从键盘上输入的数据 例如: char c=(char)Console.Re
15、ad( ); string s=Console.ReadLine( ); int i=int32.Parse(Console.ReadLine( );,1.控制台类:Console,练:,class teststatic void Main()int i;char ch;string str1 = “Hi!“,str2 = “welcome to C#!“;Console.Write(str1);Console.Write(str2);Console.WriteLine(str1);Console.WriteLine(str2);i = Console.Read();Console.Write
16、Line(“01“, “i=“, i);ch = (char)i;Console.WriteLine(“01“, “ch=“, ch); ,运行过程: Hi!welcome to C#!Hi! welcome to C#! a(输入a再回车) i=97 cha,2. C#程序结构,(1)C#程序的组成要素 1) 关键字在C#代码中常常使用关键字,关键字也叫保留字,是对C#有特定意义的字符串。关键字在Visual Studio .NET环境的代码视图中默认以蓝色显示。例如,代码中的using、namespace、class、static、void等,均为C#的关键字。,2.C#程序结构,2)命名
17、空间namespace 3)类class和方法 C#中,必须用类来组织程序的变量与方法。 C#要求每个程序必须且只能有一个“Main”方法“Main”方法必须放在某一个类中。“Main”方法是应用程序的入口。 4)语句 语句就是C#应用程序中执行操作的指令。C#中的语句必须用分号“;”结束。 可以在一行中书写多条语句,也可以将一条语句书写在多行上。,2.C#程序结构,5)大括号 在C#中,括号“”和“”是一种范围标志,是组织代码的一种方式,用于标识应用程序中逻辑上有紧密联系的一段代码的开始与结束。 大括号可以嵌套,以表示应用程序中的不同层次。,3.C#程序的书写格式,1)缩进与空格 缩进用于表
18、示代码的结构层次,这在程序中不是必须的,但是缩进可以清晰地表示程序的结构层次,在程序设计中应该使用统一的缩进格式书写代码。 空格有两种作用,一种是语法要求,必须遵守,一种是为使语句不至于太拥挤。 例如:int ia = 3;,4.C#程序的书写格式,2)字母大小写 C#中的字母可以大小写混合,但是必须注意的是,C#把同一字母的大小写当作两个不同的字符对待,如,大写“A”与小写“a”对C#来说,是两个不同的字符。 3)注释 C#中的注释基本有三种: 单行注释:以 “/ ”开始,不能换行。 多行注释:以“/*”开始,以“*/”结束,可以换行。 文档注释:/,C#注释示例,namespace Hel
19、lo/定义命名空间 / / 该程序向控制台输出两行信息/ 作者:wsy 日期:2009-2-1/ class Program/定义类static void Main(string args)/定义方法/*此处添加代码*/Console.WriteLine(“Hello .NET!“); /输出Hello .NET!Console.WriteLine(“Hello C#!“);Console.ReadLine(); /等待用户输入,使输出显示暂停 ,作业及上机练习,1.编写一个简单的控制台应用程序,输入一串字符,然后将它输出。 2.编写一个简单的应用程序,单击按钮时,在消息框中显示“努力学习C#
20、!” 要求:在VS.NET环境下执行。,案例2:创建Windows应用程序,题目描述:在文本框中显示两行文字,鼠标点击“显示”按钮后在文本框显示文字,点击“清屏”按钮后清除文本框内容。,一.涵盖知识点,Windows应用程序开发步骤1. 新建项目2. 添加控件和设置控件属性(1) 添加控件 (2) 修改属性 3. 编写代码 4. 保存程序 5. 运行调试程序,二.操作步骤,1.新建项目1)文件新建项目;2)在左窗中的“项目类型”中选择Visual C#;3)在右窗中的“项目模板”中选择Windows应用程序选项;4)注意要选择好解决方案保存位置。,二.操作步骤,2.设计程序界面 (1) 添加控
21、件,按钮控件,二.操作步骤,二.操作步骤,(2) 修改属性,二.操作步骤 3. 编写代码,private void btnShow_Click(object sender, EventArgs e) txtShow.Text = “Hello .NET!rnHello C#!“; private void btnClear_Click(object sender, EventArgs e) txtShow.Text = “; ,一个Windows应用程序,二.操作步骤 3. 编写代码,点击“显示”或“清除”按钮时,触发相应按钮的“Click”事件,自动进入事件处理程序。 窗体、按钮、文本框等都
22、是对象,它们有属性有行为(方法)。给对象的属性赋值形式为:对象名.属性名=属性值例如:txtShow.Text=“Hello world!”btnShow.Text=“显示”; 对象有行为方式(称方法),用来描述对象可以执行的操作。例如,事件处理程序btnShow_Click就是“显示”按钮的Click事件的处理方法。,二.操作步骤,4. 保存程序Ctrl+S或使用工具栏上的 5. 运行调试程序 Ctrl+F5或F5。,案例拓展: 创建Windows应用程序几个概念,控件:添加到窗体中的每个组件。每个具体的控件就是一个对象。例如:窗体、按钮、文本框、标签等。 事件:控件改变状态时引发一个事件。
23、 事件处理程序:是绑定到事件的方法,当事件发生时就执行该方法内的代码。 例如:按钮的点击事件Click。,案例3.在对话框显示几行文字,显示效果,案例3.在对话框显示“Hello world!”,using System.Windows.Forms; class TestHello static void Main()MessageBox.Show(“Hello world!“); ,类库中的每个类都从属于一个特定的命名空间 要使用using语句来定位所使用的类库中类的命名空间。 MessageBox类属于命名空间“System.Windows.Forms” 要添加对命名空间所在程序集的引用,
24、一.涵盖知识点,MessageBox.Show(“Hello world!”); 是对类MessageBox中的方法Show的调用,作用是在对话框中显示一个字符串。调用格式:类名.方法名 本题可以在Console应用环境下和Windows应用环境下实现,作业及上机练习,3.创建一个windows应用程序(如图1所示),当单击左边的按钮时,左边按钮显示为“显示”,右边的按钮显示为“单击我”,文本框显示“你刚才单击的是左边按钮”(如图2所示);当单击右边的按钮时,右边按钮显示为“显示”,左边的按钮显示为“单击我”,文本框显示“你刚才单击的是右边按钮” (如图3所示) 。,作业,图1 图2 图3,努力跨越学习C# 的障碍,