第二讲C基本语法.ppt
《第二讲C基本语法.ppt》由会员分享,可在线阅读,更多相关《第二讲C基本语法.ppt(67页珍藏版)》请在三一文库上搜索。
1、C#基本语法,C#代码的外观和操作方式和C+、Java十分的相似,在C#编程的过程中,不需要花费太多的精力就可以编写出十分清晰的代码。,using System; using System.Collections.Generic; using System.Text; namespace Hello_New_World class Program static void Main(string args) Console.WriteLine(“Hello New World我的第一个C#应用程序“); Console.ReadKey(); ,C#的基本语法概况,C#的每条语句都用一个分号来结束
2、;为了程序的可读性和易维护性,建议一行一语句,C#编译器自动过滤回车符之类的空白字符; C#是一个块结构的编程语言,代码块使用“”和“”来界定,代码块中可以包含任意条语句,也可以根本不包含语句。在VS 2005中编写代码时,系统会根据代码块的层次进行自动缩进; C#代码严格区分大小写,这与其他许多编程语言是不同的,否则将会引起编译出错。例如将上述控制台程序中的输出语句“Console.writeLine (“Hello New World我的第一个C#应用程序“)”更改为“ConSole.WriteLine(“Hello New World我的第一个C#应用程序“)”,程序将不能正常编译和执行
3、。,C#的基本语法概况,在C#中,可以使用两种方式来注释代码:单行注释和多行注释。单行注 释使用“/”来标记注释,其后可以编写任何内容,但一次只能注释一行语 句,使用多行注释时,C#以“/*”标记注释的起始位置,以“*/”标记注释 结束。,using System.Text; /引用System.Text命名空间 /* 这是一个简单的C#控制台应用程序 程序开始 */ namespace Hello_New_World ,C#的基本语法概况,VS 2005具有代码的突出显示功能,及代码的折叠和隐藏功能。在编写C#代码时,可以使用“#region”和“#endregion”关键字,来定义需要扩展
4、和收缩的代码,,#region 引用的命名空间 using System; using System.Collections.Generic; using System.Text; #endregion,C#的基本语法概况,变量 变量是计算机内存中的一块存储单元,可以将数据存放到变量中,需要的时 候再从中取出进行查看或修改。 变量的基本类型,变量和表达式,整型变量,浮点型变量,其他3种常用变量类型,变量和表达式,变量的命名规则和命名方法 变量是计算机中占据一定内存单元的存储区域,通过指定变量的名称来使用 和管理变量。从数据存储的角度来看,变量名相当于存储数据的变量所占据 的那块内存单元的标识名
5、。 变量名的第一个字符必须是字母、下划线(_)或; 其后的字符可以是字母、下划线、数字等; 不能使用C#中的关键字作为变量名,如using、namespace等,因为这些关键字对于C#编译器而言有特定的含义; C#是区分大小写的,因而在命名变量时,一定要使用正确的大小写,因为在程序中使用它们时,即使只有一个字母的大小写出错,也会引起编译错误。 对于简单的变量,建议使用camelCase命名方法,而对于比较高级的变量, 则使用PascalCase命名方法。,productId productName productDiscontent,ProductId ProductName ProductD
6、iscontent,camelCase,PascalCase,变量和表达式,识别下列标识符,Person yearly-cost yearly_cost int int myclass Checking#this Float 5day 变量名最好使用具有实际意义的英文单词,能够“见名知意”,变量,static void Main(string args) / 声明布尔型、字符串型、整型、短整型和浮点型变量 bool test = true; short num1 = 19; int num2 = 14000; string val = “John“; float num3 = 14.5f; /
7、 显示变量值 Console.WriteLine (“布尔值 = “ + test); Console.WriteLine (“短整型值 = “ + num1); Console.WriteLine (“整型值 = “ + num2); Console.WriteLine (“字符串值 = “ + val); Console.WriteLine (“浮点值 = “ + num3); ,变量中存储的值取决于该变量的类型,变量的作用域,Class Scope public static void Main() int x; x=10; if(x= =10) int y=20; Console.Wr
8、iteLine(“ x and y:0,1”,x,y); y=100; Console.WriteLine(“x is “+x); ,程序中的一个块就定义就定义了一个作用域,域内的变量对外部不可见。变量在进入其作用域时创建,在离开作用域时被释放。,常量 常量又称为字面值,是一种在使用过程中值不发生改变的特殊变量。常量的 声明方法和变量类似,只要在类型关键字前面加上const关键字并指定常量 值即可。和变量一样,常量也包括多种类型:数值常量、字符常量等。 注意:常量在程序中只能被赋值一次,否则编译器便会报告错误。 常量具有以下显著特征: 常量必须在声明时进行初始化,其指定值后便不能再进行修改;
9、常量的值必须能够在编译时用于计算,因而,从一个变量中提取某个时刻的值并将其赋值给常量,这种做法是不允许的; 常量是静态的,但不必在声明时使用static修饰符。 在程序中使用常量有以下几个好处: 常量使用易于理解的名称,来代替含义不明确的数字或字符串,使程序更易于阅读; 常量使程序更易于修改。,const int pi3.1415926;,变量和表达式,常量,static void Main(string args) / PI常量PI const float _pi = 3.14F; / 由地球引力引起的加速度常量,单位为 cm/s*s const float _gravity = 980;
10、/ 钟摆的长度 int length = 40; / 钟摆的周期 double period = 0; / 钟摆周期的计算公式 period = 2 * _pi * Math.Sqrt(length / _gravity); Console.WriteLine (“钟摆的周期为 0 秒“, period); ,声明常量,在表达式中使用常量,const 关键字用于声明常量,字符串常量存储的是一组字符,例如一个用于连接数据库的字符常量: 上述常量中便发生了转义字符的问题,应用程序在使用该字符串常量来连接数据库时,便会出现连接错误,原因是系统将字符串常量中的字符“”看作是转义字符来处理了。如果要解决
11、前面连接数据库的字符串常量中的反斜杠字符识别问题,可使用两个反斜杠,即更改成如下所示:,“server=wjltupwk_wjl;Integrated Security=SSPI;database=电子商务系统”,“server=wjltupwk_wjl;Integrated Security=SSPI;database=电子商务系统”,变量和表达式,C#两种数值类型,值类型变量包含本身数据,而引用类型变量存放的是指向真正数据块的引用(指针),C# 的基本数据类型,static void Main(string args) DataTypeDemo objTest = new DataType
12、Demo(); objTest.Val = 100; / 传递属于引用类型的对象 Test(objTest); / 由于该数据类型属于引用类型,所以会考虑新处理的值 Console.WriteLine(“变量的值为 0“, objTest.Val); static void Test(DataTypeDemo dataTest) int temp = 10; dataTest.Val = temp * 20; ,将 DataTypeTest 的引用传递给 Test(),被传递的 val 在 Test() 中改变,反映已经改变的 val 值,不而保留原始值,class DataTypeDemo
13、public int Val; ,装箱和拆箱,int val = 100; object obj = val; Console.WriteLine (“对象的值 = 0“, obj);,int val = 100; object obj = val; int num = (int) obj; Console.WriteLine (“num: 0“, num);,拆箱,装箱,被装过箱的对象才能被拆箱,装箱/拆箱,实现值类型/引用类型之间转换的机制 int i=110; object obj=i; /object obj=(object)i; int j=(int)obj; 注意:拆箱转换的数据类
14、型必须与装箱的类型一致(兼容),否则出错!,对象类型System.Object,所有其他对象的基类,所有的数据类型都直接或间接的从object类型继承 Object类型的变量可接受任何类型的数值 是实现装箱/拆箱的本源所在,using System; using System.Collections.Generic; using System.Text; namespace HelloWorld class ObjectApp int number = 918; static void Main(string args) object obj = 124; Console.WriteLine(
15、obj); Console.WriteLine(obj.GetType(); obj = new ObjectApp(); ObjectApp value; value = (ObjectApp)obj; Console.WriteLine(value.number); Console.WriteLine(obj.GetType(); Console.Read(); ,可用object引用指向任何类型的对象,用相同的代码对不同类型的数据执行不同的操作,这就是单一继承体系的好处,GetType()可动态获得对象的真正类型,Object.ToString()获得对象的字面量,获得一个对象的用户友好
16、的字符串表示,通过改写ToString来进行自定义输出,class Teacher public string name; public string courseName; public override string ToString() return string.Format(“Im a teacher,my name is 0 and I teach 1“,this.name,this.courseName); ,class Student public string name; public int age; public Student(string name, int age)
17、 this.name = name; this.age = age; public override string ToString() return string.Format(“I am a student,my name is 0 and I am 1 years old“,name,age); ,static void Main(string args) Teacher t = new Teacher(); t.name = “Bill Gates“; t.courseName = “Objects orientation programming“; Student s = new S
18、tudent(“Tom Hanks“, 18); Console.WriteLine(t); Console.WriteLine(s); /等价于调用Console.WriteLine(s.ToString(); Console.Read(); ,通过改写ToString方法,可以提供一致的形式来显示对象的信息,这里体现了面向对象编程的什么特性呢?,多态性!,隐式转换和强制转换,隐式(赋值和混合表达式中) 自动算术表达式转换,低类型的操作数被提升到高类型,结果也为高类型 double s;int i;s+i 显式 强制将高级数据类型转换成低级数据类型 int i=(int)(1.2*y+0.5
19、); 一般会导致丢失一些数据精度,C#所支持的隐式类型转换,显式转换 明确要求显示器把一种变量类型转换为另外一种变量类型时,便是显式转换,这相当于告诉编译器“我已经知道你对我这么做提出了警告,但我将对这么做的后果负责”。 但这种转换很可能在程序运行期间因类型转换而造成数据丢失,造成极大破坏,这又被称为数据的溢出。 推荐使用Convert命令来进行显式转换,这种转换能够成功执行的前提是:所要转换的字符串必须是数值的有效表达方式,而且不会溢出。,(目标类型)源变量;,可使用Convert命令转换的数据类型,as实现转型,语法:T t2=t1 as T 含义:如果对象t1为类型T(或其子类)的实例,
20、则将t1赋值给t2,否则t2为null 与显式强制类型转换相比,它避免了由于类型不匹配造成的异常抛出,using System; class Class1 class Class2 ,class MainClass static void Main() object objArray = new object6; objArray0 = new Class1(); objArray1 = new Class2(); objArray2 = “hello“; objArray3 = 123; objArray4 = 123.4; objArray5 = null; for (int i = 0;
21、 i objArray.Length; +i) string s = objArrayi as string; Console.Write(“0:“, i); if (s != null) Console.WriteLine(“ + s + “); else Console.WriteLine(“not a string“); ,0:not a string 1:not a string 2:hello 3:not a string 4:not a string 5:not a string,运算符与表达式,变量和常量解决了数据的存储问题,而表达式则用于数据的处理,它是计算的的基本建立块。在C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 基本 语法
链接地址:https://www.31doc.com/p-3452783.html