测绘程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本章主要介绍了C#语言的基础知识,内容主要包括C#基本语法、数据类型、运算符和表达式。本章是后续章节的基础,学习完本章后,应可以编写简单C#应用程序。2.1C#基本语法2.2变量简介2.3C#数据类型2.4运算符与表达式小结C#代码的外观和操作方式与C++和JAVA类似C#编译器不考虑代码中的空格、回车符或者Tab字符。C#代码由一系列语句组成,每个语句用分号来结束。C#是一种块结构的语言,所有的语句都是代码块的一部分。这些块用花括号来界定{},代码块可以包含任意多行语句,或者不包含语句。注意花括号不需要带分号。在C代码中,经常出现注释语句。编译器会忽略这些内容。//XXXXX/*这段代码由XXX编写*/还需要说一点,C#代码是区分大小写的。必须使用正确的大小写形式输入代码。Console.WriteLine(“helloworld!”);console.WriteLine(“helloworld!”);控制台程序基本结构2.1C#基本语法2.2变量简介2.3C#数据类型2.4运算符与表达式小结数据是程序的必要组成部分,也是程序处理的对象变量关系到数据的存储。实际上,可以把计算机内存中的变量看作架子上的盒子。7尽管计算机中所有数据事实上都是相同的东西,但变量有不同的内涵,称为类型(数据类型)。用盒子来类比,盒子有不同的形状和尺寸,某些东西只能放在特定的盒子中。这个类型系统的另一个原因是,不同类型的数据需要不同的方法来处理。变量限定为不同的类型,可以避免混淆。例如,组成数字图片的0和1序列与组成声音文件的0和1序列,其处理方式是不同的。8变量与内存变量创建时,计算机都会给它分配一块足够大的内存空间,来保存该类型的变量。相同类型的不同变量总是占据相同大小的内存。不同类型的变量需要分配的内存空间不一样。使用变量使用变量就是声明他们。•typename可以使用的变量类型是无限多的。其原因是可以自己定义类型,存储各种复杂数据。尽管如此,总有一些数据类型是每个人都要使用的—简单的预定义类型910CTS类型值类型与引用类型预定义类型变量常量类型转换复合类型装箱和拆箱11CTS简介:CTS(CommonTypeSystem)公共类型系统,它定义了可以在中间语言使用的预定义数据类型,用于.NET语言都可以生成最终基于这些类型的编译代码。公共类型系统不仅指定基本数据类型,还定义了一个内容丰富的类型层次结构。12CTS类型层次引用类型值类型内置值类型枚举用户定义的值类型指针类型接口类型自我描述类型委托封箱的值类型用户定义的引用类型数组类类型13CTS类型值类型与引用类型预定义类型变量常量类型转换复合类型装箱和拆箱14数据类型分为值类型和引用类型两种。从概念上看,值类型直接存储其值,而引用类型存储对值的引用。从在内存中的存储位置上看,值类型变量把数据存储在栈中,引用类型变量把数据存储在堆中。15值类型与引用类型在内存中的存储inti20inti=20;“hello”strings=“hello”;intj=i;stringt=s;stringssintj20stringtt16CTS类型值类型与引用类型预定义类型变量常量类型转换复合类型装箱和拆箱17预定义数据类型是由C#语言和.NET框架提供的,每个预定义类型都映射为CTS中定义的类型。C#中有15个预定义类型,其中有13个值类型和两个引用类型(string和object)。18预定义的值类型C#关键字.NETCTS类型值类型位数SbyteSystem.SByte整数8shortSystem.Int16整数16intSystem.Int32整数32longSystem.Int64整数64byteSystem.Byte整数8ushortSystem.Uint16整数16uintSystem.Uint32整数32ulongSystem.Uint64整数64floatSystem.Single浮点32doubleSystem.Double浮点64decimalSystem.Decimal高精度小数128boolSystem.Boolean布尔值1charSystem.Char整数16说明-128~127-32768~32767-2147483648~2147483647-9223372036854775808~92233720368547758070~2550~655350~42949672950~18446744073709551615true或false表示一个16位(Unicode)的字符45381.5*10~3.4*10;7个有效位3243085.0*10~1.7*10;15~16个有效位28281.0*10~7.9*1019(1)shortint类型Short和int类型分别对应CTS中的int16和int32,当你需要一个整数变量时,可以这样声明:一些变量名称前的‘u’表示不能在这些类型中存储负数,相应的整数存储范围变大。intmyInt=32768;20(2)floatdouble类型Float和double类型对应CTS中的single和double,当你需要一个浮点数时,而不是整数时可以这样声明:一些其他的类型bool是C#中最常见的一种变量类型,但编写应用程序的逻辑流程时,一个可以是ture或false的变量具有非常重要的分支作用。doublemyDouble=3.14159262;21(3)char类型存储单个字符。一些字符不能直接放在引号中,必须使用转义字符,这些转义字符如下表所示。char的双重身份:char的具有双重身份。它表示字符但却被看作是整数家族的一部分,它表示的值是一个无符号的整数,范围在0~65535。它可以参与计算,并可以隐式转换成int、long、ushort、uint和ulong。22(2)char类型转义字符字符名称\’单引号\\反斜杠\0空字符\a警报符\b退格\f换页\n换行\r回车\t水平制表符\v垂直制表符\”双引号转义字符表23预定义的引用类型C#支持两个预定义引用类型,如下表所示:objectSystem.Object引用类型不定stringSystem.String不定根类型,CTS中其它类型都是从它派生来的(包括值类型)。Unicode字符串C#关键字.NETCTS类型类型位数说明24(1)object类型object类型是从所有内在和用户定义的类型中派生而来的最终父类型,所有类型都隐含地最终派生于System.Object类。(1)object类型object类型可用于两个目的:1)使用object引用绑定任何特定子类型的对象,例如:2)object类型执行基本用途的方法,Equals()、GetHashCode()、GetType()和ToString()等等。25inti=20;objecto=i;26(2)string类型字符串变量是包含字母或数字字符的序列,它可以用来存放计算机或查询操作的输入信息。注意:对组成字符串的字符数没有限制。27(2)string类型声明字符串变量:stringmyStr1=“hello”;stringmyStr2=“world”;stringmyStr3=myStr1+myStr2;C#的string类型可以用“+”直接连接,结果myStr3=“helloworld”(2)string类型字符串中也可以包括转义字符:结果如下:28string的永恒性C#中,创建一个string对象后,它所代表的字符集不能修改。当把一个字符串变量赋给另一个字符串时,会得到内存中同一个字符串的两个引用。但是,修改其中一个字符串,注意这会创建一个全新的string对象,而另一个字符串没有改变。stringsample=“hello\nworld”;helloworld(2)string类型请考虑下边的过程:strings1=“astring”;strings2=s1;s1=“anotherstring”;strings1s1strings2s2“anothestring”“astring”对s1的修改是通过String类的各种方法来实现的,预定义的方法不会直接修改内存中的这个String,而是构造一个新的String。所以在表面上看上去象是修改没有影响到原字符串。(2)string类型verbatim字符串通过加前缀@,使编译器严格按照原样对其编译。字符串各种格式和转义字符将按原样输出。如:30strings=@“hello\nworld”;hello\nworld结果输出:(2)string类型verbatim字符串注意:引号是唯一例外,编译器必须将其转义,例如,生成字符串“Hello”的代码如下:输出结果为:31strings=@“““Hello”””;注意:Hello的两边都有3个引号“Hello”注:转义字符处理一对32CTS类型值类型与引用类型预定义类型变量常量类型转换复合类型装箱和拆箱(1)声明变量语法:例如:该语句用public访问级声明int变量i。33[modifiers]datatypeidentifier;publicinti;修饰符数据类型标识符34(2)标识符(identifier)标识符是给变量、用户定义的类型和这些类型的成员指定的名字。C#变量命名的基本规则:变量名首字符必须是字母、下划线(“_”)或“@”;其后字符必须是字母、下划线或数字;切忌使用C#关键字。如果需要使用,须在标识符前边加上“@”(如@abstract)。35(2)标识符(identifier)练习:下边哪些变量的命名是正确的myBigVar99BottleOfBeernamespaceVAR1_testIt’s-All-Over带红色下划线的变量名是正确的36(2)标识符(identifier)以下列出了命名变量的一些约定:给变量分配有意义的名称;命名类和方法时使用PascalCase样式,命名变量使用camelCase样式。不要通过大小写的不同来区分变量。变量命名的两种常用大小写样式Pascal样式-名字中每个单词的第一个单词大写,AverageSpeed;Camel样式-与Pascal样式基本相同,不同的是标识符的第一个单词小写,如averageSpeed.(3)初始化变量变量声明后,我们必须初始化该变量。37classTest{staticvoidMain(){intmyTest=8;System.Console.WriteLine(myTest);}}Errorcs0165:Useofunassignedlocalvariable‘myTest’intmyTest;(3)初始化变量另外,注意初始值要与声明的类型相一致可以通过附加后缀来指定数值类型38stringmyString=34.50;//错误stringmyString=“34.50”;//正确39(3)初始化变量可使用的后缀如下表:类别描述整数实数后缀LUUL无符号长整型无符号长整型FDM浮点型双精度型十进制40(4)变量的作用域classProgram{staticvoidMain(string[]args){stringmyString=stringdefinedinMain;write();Console.ReadKey();}staticvoidwrite(){Console.WriteLine(myString={0},myString);}}staticvoidMain(string[]args){stringmyString=stringdefinedinMain;write();Console.WriteLine(\nNowintheMain);Cons

1 / 83
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功