550 likes | 660 Views
C# 程序设计语言课程内容. 第一章:概述 第二章: C# 语言的基本原理 第三章: C# 中对象的创建 第四章:面向对象的编程技术 第五章: C# 编程 第六章:编写基于 .NET 的应用 程序 第七章:使用 ADO.NET 访问 数据. 第八章:创建基于 Windows 的应用程序 第九章:在 C# 应用程序中使 用 XML Web Service 第十章:创建 Web 应用程序
E N D
C#程序设计语言课程内容 • 第一章:概述 • 第二章:C# 语言的基本原理 • 第三章:C# 中对象的创建 • 第四章:面向对象的编程技术 • 第五章:C# 编程 • 第六章:编写基于 .NET 的应用 程序 • 第七章:使用 ADO.NET 访问 数据 • 第八章:创建基于 Windows 的应用程序 • 第九章:在 C# 应用程序中使 用 XML Web Service • 第十章:创建 Web 应用程序 • 十一章:应用程序设置和 部署 • 十二章:进阶学习目标
2 C#语言的基本原理 内容: C#程序的基本原理 C#预定义类型 编写表达式 条件语句 循环语句 C#
C#程序的基本原理 2.1 学习完本节后,你将能够: • 了解C#语句 • 使用大括号来组织语句 • 在代码中加入注释
C#程序结构 2.1.1 • 程序结构 • 构成应用程序的必要元素有哪些? • 怎样组织这些元素,使得编译器能够识别应用程序代码?
第一个 C#程序 :HelloWorld HelloWorld.cs • using System; • class HelloWorld • { • static void Main( ) • { • Console.WriteLine(“Hello, World!”); • } • }
第一个 C#程序 :HelloWorld 第 1 行: 1: using System; • using 关键字 • 用来引用.NET框架类库中的资源 • 通常在程序文件的开头使用 • 如果程序中需要多种资源,可以使用多次using • System 命名空间 • System命名空间提供了构建应用程序所需的系统统能的访问
第一个 C# 程序 :HelloWorld 第 2,3,8 行: 2: class HelloWorld 3: { ……….. 8: } • 类 • 在C#或其他面向对象语言中,需要编写类 • 使用关键字class定义一个类,类的内容放在一对 { }中 • 示例中定义了一个名为HelloWorld的类
第一个 C# 程序 :HelloWorld 第 4,5,7 行: 4: static void Main( ) 5: { ……….. 7: } • Main 方法 • Main 方法是应用程序的入口点,编译器将由该处开始执行程序 • 方法体也放在一对{ }中 • 每个C#的应用程序都必须包含Main方法
第一个 C# 程序 :HelloWorld 第 4,5,7 行: 4: static void Main( ) 5: { ……….. 7: } • Main方法 • static表示Main方法是一个全局方法 • void表示Main方法没有任何返回值,即返回值是空 • 参数放在小括号中定义。此处括号内没有内容,表明Main方法没有任何参数
第一个 C# 程序 :HelloWorld 第 6 行: 6: Console.WriteLine(“Hello, World!”); • 语句 • 在C#中要执行的指令 • 语句之间用;分隔,编译器通过分号来区分多个语句 • 使用大括号{ }标识某个代码块的开始和结束,从而可以对语句进行组合。大括号必须成对匹配。
第一个 C# 程序 :HelloWorld 第 6 行: 6: Console.WriteLine(“Hello, World!”); • 语句 • HelloWorld程序的主要目的就是在屏幕上显示一条问候 WriteLine方法用来将问候语写到标准输出设备上。 • Console代表标准输出设备--- 屏幕,它属于System命名空间 • WriteLine方法是Console类的方法。访问类或对象的方法使用 点取符.来完成。 • 字符串用双引号“ ”表示 • 字符串“Hello,World”是WriteLine方法的参数,表示屏幕输出 的内容
C#的代码格式 2.1.2 • 作用 • 良好、清晰的组织代码 • 提高代码的可读性,易于代码维护 • C#的代码格式 • 缩进 • 区分大小写 • 忽略空白区 • 注释 建议使用约定的代码风格
C#的代码格式 2.1.2 • 注释 • 单行注释 // • 多行注释/* 和 */ //This is my first C# Program using System; class HelloWorld { static void Main() { Console.WriteLine ("Hello, World"); } }
编译和运行 HelloWorld HelloWorld.cs • using System; • class HelloWorld • { • static void Main( ) • { • Console.WriteLine(“Hello, World!”); • } • }
2 C#语言的基本原理 内容: C#程序的基本原理 C#预定义类型 编写表达式 条件语句 循环语句 C#
C# 预定义类型 2.2 学习完本章后,你将能够: • 声明并初始化变量 • 创建并使用字符串 • 创建并使用常量 • 执行类型转换 在编写应用程序时,都必须使用某种方式表示数据,因此必须正确使用数据类型
内置数据类型 2.2.1 C#的内置数据类型大致可划分为:(P25表2.1) • 逻辑型: bool • 文本型: char, string • 整 型: byte,sbyte, short,ushort, int, uint, long, ulong • 浮点型: float, double, decimal
声明并初始化变量 2.2.2 第 1步:声明变量 • 作用:通过声明变量,可以在内存中为该变量申 请存储空间 • 语法: 类型 变量名; int numberOfVisitors; stringbear;
声明并初始化变量 2.2.2 第 2步:初始化变量 • 作用:给变量分配初值 • 语法: 变量名 = 初值; string bear; bear = “Grizzly”; // 声明和初始化一步完成 string bear = “Grizzly”;
声明并初始化变量 2.2.2 注意事项: • bool 只能取2个值:true 或 false • char 表示单个Unicode字符,用‘’表示 • 使用后缀 (P27页表2-2) bool isOpen = 0;// 错误 bool isOpen = false; char c = ‘A’; decimal balance = 3400.20; //错误 decimal balance = 3400.20M;
特殊字符和转义字符 • 有些特殊字符无法直接放在引号中,此时要表示这些字符,必须使用转义符
检查Visual Studio.NET中的变量 • 如何设置断点、使用watch窗口、单步执行 Demo
声明并初始化字符串 2.2.3 • 字符串表示任意长度的Unicode字符序列 • 字符串使用“”表示 • 可以使用转义字符或verbatim字符 string s = "Hello World"; string filename = “c:\trainer\Readme.txt”;//错误 或 string filename = @“c:\trainer\Readme.txt”;
创建并使用常量 2.2.4 • 常量是指一旦被初始化,其数值保持不变的变量 • 常量通常用来表示有意义的固定数值,如圆周率 • 声明常量时必须对其赋值 语法: const 类型 常量名 = 数值 const decimal PI = 3.1415926M; //圆周率 const int earthRadius = 6378;//地球半径
创建并使用枚举类型 2.2.5 思考题: 我们经常需要从多个相关的值中进行选取,如 • 一种天气:晴、阴、雨、雪、雾 • 一周的某一天:Monday, Tuesday, … Sunday • 一年的某个月:Jan, Feb, Mar ….. Dec • 一种对齐方式:左对齐、右对齐、居中对齐、两端对齐 ?
创建并使用枚举类型 2.2.5 • 枚举类型是一组被命名的数字常量,即:一个枚举类型中包含了多个相关的数字常量,且每个常量都被赋予了一个容易记忆的“名字” • 使用enum关键字创建枚举类型 enum Weather { Sunny, //默认值0 Cloudy, //默认值1 Rain, //默认值2 Snow, //默认值3 fog //默认值4 }
创建并使用枚举类型 2.2.5 • 引用枚举成员 Weather bj ; bj = Weather.Sunny; //显示结果 Console.WriteLine(bj); // 显示Sunny,而不是数字0
创建并使用枚举类型 2.2.5 • 给枚举成员明确赋值 enum Month { Jan = 1, Feb = 2, Mar = 3, …… Dec = 12 }
类型转换 2.2.6 • 相容的数据类型可以混合运算。运算中,不同数据类型先被自动转换为相同数据类型,然后再进行运算。转换时低容量数据类型向高容量数据类型转换。 低 高 byte short int long float double
类型转换 2.2.6 • 将小容量数据类型转换成大容量数据类型时,系统自动完成,成为隐式转换 • 将大容量数据类型转换成小容量数据类型时,可能丢失信息,必须使用强制类型转换 int x = 123456; long y = x; // 将int隐式转换为long decimal d = 100.99; int x = (int)d; // x的值是100,小数点后的值被舍弃
2 C#语言的基本原理 内容: C#程序的基本原理 C#预定义类型 编写表达式 条件语句 循环语句 C#
编写表达式 2.3 学习完本节后,你将能够: • 使用运算符和创建表达式 • 确定运算符的优先级
常见运算符 示例 • 增 / 减 • 算术 • 关系 • 相等 • 条件 • 赋值 ++ -- * / % + - < > <= >= == != && || ?: = *= /= %= += -= <<= >>= &= ^= |= 表达式和运算符 2.3.1 • 运算符就是表达式中的符号
运算符的优先级 2.3.2 • 按照运算符的优先级计算表达式 • 可以使用圆括号控制运算的顺序 • 左结合和右结合 • 所有二元运算符都是左结合的 • 赋值运算符和条件运算符是右结合的 10 + 20 / 5 结果是 14 (10 + 20) / 5 结果是 6 10 + (20 / 5) 结果是 14
2 C#语言的基本原理 内容: C#程序的基本原理 C#预定义类型 编写表达式 条件语句 循环语句 C#
条件语句 2.4 • 条件语句可以根据布尔表达式的值,有选择性的执行程序的某一部分 • 在C# 中的条件语句有 if 和 switch 两种 • if 适合两个分支判断 • switch 适合多个分支判断
if 语句的使用方法 2.4.1 • 语法: • else 部分可选 • if … else 可以嵌套 if ( 布尔表达式 ) { 语句块1; } else { 语句块2; }
if 语句的使用方法 2.4.1 • 示例: • 运算符(?:)是 if … else 语句的缩略形式 if ( sales > 10000 ) { bonus = 0.05 * sales; } else { bonus = 0; } bonus = (sales>1000)? (0.05 * sales):0;
switch 语句的使用方法 2.4.2 • 在互斥的多个选项中选一个,switch 语句很有用 • 语法: switch(待测试表达式){ case value1 : 语句; break; case value2 : 语句; break; …… default: 语句; break; }
switch 语句的使用方法 2.4.2 • switch表达式中求值的类型可以是整形、字符型、字符串、枚举类型 • 计算表达式的值并进行等值匹配。若表达式的值与某个case标记中的值相等,则执行权转到该 case 标记后的语句 • break 跳出整个switch 。每个case 中都必须使用 break,C# 不允许从一个case进入下一个case,称为不可贯穿性 switch(待测试表达式){ case value1 : 语句; break; case value2 : 语句; break; …… default: 语句; break; }
switch 语句的使用方法 2.4.2 • 若没有任何一个 case 标记的值与表达式匹配,则转到 default 语句中;若没有定义default,则结束switch判断 • default 是可选的,但通常需要定义,以捕获没有被任何case 处理的值,其作用相当于 else。 switch(待测试表达式){ case value1 : 语句; break; case value2 : 语句; break; …… default: 语句; break; }
switch 语句的使用方法 2.4.2 DateTime today = DateTime.Now; DayOfWeek weekday = today.DayOfWeek; string str = ""; switch (weekday) { case DayOfWeek.Monday: str = "Don't speak to me!"; break; … … case DayOfWeek.Friday: str = "Anticipation..."; break; default: str = "Wondeful !!!"; break; }
10 分钟 使用 switch语句 练 习
2 C#语言的基本原理 内容: C#程序的基本原理 C#预定义类型 编写表达式 条件语句 循环语句 C#
循 环 语 句 2.5 • 借助循环机制,编译器可以重复执行一块代码,直至满足某个条件为止,从而避免重复输入相同的代码行 • C# 提供的循环机制有: • for 循环 • while 循环 • do 循环
for 循环 2.5.1 • for循环用于将代码块执行固定的次数 • 语法: for ( 初始化表达式;循环条件;迭代表达式 ) { 循环语句; }
for 循环 2.5.1 • 先执行初始化表达式,此部分只执行一次 • 判断条件表达式,若满足条件则执行循环体;否则跳出for 循环 • 每次循环语句执行完后要执行一次迭代,并重新判断循环条件 • 示例: for (int i = 0; i < 10; i++) { Console.WriteLine("i = {0}",i); } for ( int j = 100; j > 0; j -= 10 ) { Console.WriteLine("j = {0}", j); }
while循环 2.5.2 • 与for 循环类似,也是预测试循环,即首先判断循环条件,若满足则执行循环;否则不执行 • 语法: while ( 循环条件 ) { 循环语句; }
while循环 2.5.2 • 当不知道循环执行的次数时,可以使用while • 示例: while ( command != “Exit” ) { doSomething(); …… }