版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一, 注释语句/*/*注释语句包含在反斜杠* 和 *反斜杠中,或者两个反斜杠和换行符之中,或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取)要注意注释中的,该续行符会把下一行连上来一起注释掉出错。*/staticvoid Main(string args)/语句块包含在中int MyInterger;/语句以;结束string MyString;/*/忽略空白字符(空格/回车/TAB)MyInterger =17;/要注意防止注释嵌套出错,可用#if,#endif预处理语句。二,数据类型,基本型/内置型 用户自定义型,内置类型:CS使用.net FrameWork库中的数据类型s
2、byte= System.SByte,.类型 字节数 解释byte 1 无符号字节型sbyte 1 有符号字节型short 2 有符号短字节型ushort 2 无符号短字节型int 4 有符号整型uint 4 无符号整型long 8 有符号长整型ulong 8 无符号长整型float 4 浮点数double 8 双精度数decimal8 固定精度数string unicode字串型char unicode字符型bool 真假布尔型/只接受true和false两种值。不接受任何整数类型。 ,用户定义类型包括:类类型(class)结构类型(struct)接口类型(interface),值类型(Va
3、lue Types)和引用类型(Reference Types),值类型:内存顺序分配在栈中。他们包括:所有基本或内置类型(不包括string类型)、结构类型、枚举类型(enum type),引用类型:内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C+用delete)。它们使用new运算符来创建。引用类型包括:类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举类型结构型适于快速访问和拥有少量成员的数据类型。如果涉及量较多,你应该创建一个类来实现他。,数据类型转换隐式转换:从低精度的转换到高精度的,所以不可能转换到char;另外可以把0隐式转换成枚举型,其他整数
4、不行。显式转换 staticvoid Main(string args) short shortResult, shortVal =4; int integerVal =67; long longResult; float floatVal = 10.5F; double doubleResult, doubleVal =99.999; string stringResult, stringVal = 17; bool boolVal = true; Console.WriteLine(Variable Conversion Examplesn数据类型转换范例n); doubleResult
5、= floatVal * shortVal; Console.WriteLine(Implicit,-double:0*1-2, floatVal, shortVal, doubleResult); shortResult = (short)floatVal; Console.WriteLine(Implicit,-short:0-1, floatVal, shortResult); stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal); Console.WriteLine(Explicit,-string
6、:0+1-2, boolVal, doubleVal, stringResult); longResult = integerVal + Convert.ToInt64(stringVal); Console.WriteLine(Mixed,-long 0+1-2, integerVal, stringVal, longResult); 三,变量:,普通变量:(1),命名规则:字母或_或 + 字母或_或数字 (/用于转义,用于逐个转义指定,常用于保留关键字前以保持与其他语言兼容)(2),声明变量: 变量类型 变量名变量赋值:变量 = 要赋的值C#变量被访问之前必须被初始化;否则编译时会报错。因
7、此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。变量在使用前最好习惯是要先声明和初始化。(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。int i;string text;/在循环外未初始化for (i =0;i10;I+). text =Line+ Convert.ToString(i);/在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。 Console.WriteLine(0,text);Console.WriteLine(Last txet output in loop:0,text);/出错。改正方法是在循环外初
8、始化:string text=;(4)命名约定:简单的用camelCase,复杂的用PascalCase(5)变量的七种类型:class A. publicstaticint x;/静态变量,存在期从类装载直到该程序结束。 int y;/非静态变量,或实例变量,从类实例创建到实例空间释放。 /*/*v0是数组元素,a是值参数,b是引用参数,c是输出参数 */ void F(int v,int a,refint b,outint c). int i =1;/局部变量,不会被初始化 c = a + b+;/ ,枚举enum 枚举名:枚举值类型(默认是int,默认赋值0,1,2.)枚举值1=.,枚举
9、值2=.,枚举值3,/不赋值的话,默认为最后一个明确具体值的值+1.枚举名 变量名枚举名.枚举值namespace Ch05Ex02. enum orientation:byte . north=1, south=2, east=3, west=4 /*/Class1s Desciptionclass Class1 . staticvoid Main(string args) . byte directionByte; string directionString; orientation myDirection = orientation.north; Console.WriteLine(m
10、ydirection = 0, myDirection); directionByte = (byte)myDirection;/因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。myDirection = (orientation)myByte; directionString = Convert.ToString(myDirection);/等价命令是directionString = myDirection.ToString();/因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection);/反向转换命令是orienta
11、tion myDirection = (orientation)Enum.Parse(typeof(orientation),myString);但由于enum不一定存得下 string,所以可能出错。如myString赋值为North,就不能映射到orientation中的north,出错。 Console.WriteLine(byte equivalent = 0, directionByte); Console.WriteLine(string equivalent = 0, directionString); ,结构struct 结构名:访问方式1 变量类型1 变量名1;/访问方式pu
12、blic/private访问方式2 变量类型2 变量名2;.结构名 结构变量名;结构变量名.枚举值=.;,一维数组变量类型 数组名 =new 变量类型元素个数.元素0,元素1,元素2./元素个数必须是整数或者整数常量,而且必须与后面的元素列值个数相同,否则出错。元素个数的new声明和后面的元素列值可以只选一个,就能声明并初始化数组。遍历方法,For循环到.Lengthfor(i=0,ifriendNames.Length,i+). Console.WriteLine(friendNamesi);,Foreach进行只读访问foreach(string listName in friendNam
13、es) . Console.WriteLine(listName);,二维数组(多维)变量类型, 数组名 =new 变量类型一维元素个数,二维元素个数.元素00,元素01,元素02.,.元素10,元素11,元素12.,直角数组(交错数组,数组中的数组),字符串操作:string myString =I have a dream.;char myChar = myString2;/把string变量当作只读的char数组使用,不能改写myString2char myChars = myString.ToCharArray();charseparator = ;/设定分隔符string myWor
14、ds =myString.Split(separator);/分隔成数组Console.WriteLine(myString have 0 chars,myString.Length);myString=myString.ToLower();/转小写myString=myString.ToUpper();/转大写myString=myString.Trim();/删前后空格myString=myString.TrimStart();/删前空格myString=myString.TrimEnd();/删后空格myString=myString.PadLeft(位数);/前补空格到指定位数mySt
15、ring=myString.PadRight(位数);/后补空格到指定位数myString=myString.PadLeft(位数,字符);/前补指定字符到指定位数char trimChars = e,#,*;myString = myString.trim(trimChars);/删指定字符四,常量:Const int intTwo =2 (必须声明的同时赋值)五,运算符:按优先级顺序排列算术运算符:前缀的+和- ,前缀一元的+和- 乘 * 除 / 求余 % 加 + 减 -位移运算符:比较运算符:小于 小于等于 =比较运算符:=,!=逻辑运算符:&逻辑运算符:逻辑运算符:|逻辑运算符:&逻辑
16、运算符:|比较运算符:等于 =*=/=%=+=-=&= |=后缀的+和-六,名称空间using system; /system是.net FrameWork应用程序根命名空间,之后就能在全局名称空间引用system中的代码。namespace 空间名称.using 空间名称2.代码2;/之后就能在代码1处直接引用代码2代码1;namespace 空间名称2.代码2;七,条件语句,If语句:通用判断If (条件1)代码1;Else代码2;If (条件1)Else,Switch语句:用于同条件多结果判断Switch (条件).Case 结果1:代码1;break;Case 结果2:代码2;brea
17、k;Case 结果3:代码3;goto Case 结果2;/此时Case.相当于一个LabelCase 结果4:代码4;Return;Case 结果5:Case 结果6:Case 结果7:代码567;/只要满足上面三个Case之一就执行。break;.Default:代码;break;,三元运算语句:(条件)?True结果:False结果常用于简单赋值语句:string myString = (myIntegern - 右移n位 或 = 或 0) a = -1; else Console.WriteLine(a); 条件必须放在括号里. 两个条件的判断,注意括号和条件中的等号 if(a = = 0) & (b0) a = -1; b = -1; else Console.WriteLine(a + b); switch 用于多个可能的值,如果有一个匹配,则执行相应代码,每句之后必须有break语句中断后面语句的执行。 switch(a) case 1: Console.WriteLine(1); break; case 2: Console.WriteLine(2); break; case 3: Console.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论