版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上一, 注释语句/*/*注释语句包含在"反斜杠* "和" *反斜杠"中,或者两个反斜杠和换行符之中,或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取)要注意注释中的,该续行符会把下一行连上来一起注释掉出错。*/static void Main(string args)/语句块包含在中int MyInterger;/语句以;结束string MyString;/*/忽略空白字符(空格/回车/TAB)MyInterger = 17;/要注意防止注释嵌套出错,可用#if,#end
2、if预处理语句。二,数据类型,基本型/内置型 用户自定义型,内置类型:CS使用.net FrameWork库中的数据类型sbyte = System.SByte,.类型 字节数 解释byte 1 无符号字节型sbyte 1 有符号字节型short 2 有符号短字节型ushort 2 无符号短字节型int 4 有符号整型uint 4 无符号整型long 8 有符号长整型ulong
3、60; 8 无符号长整型float 4 浮点数double 8 双精度数decimal 8 固定精度数string unicode字串型char unicode字符型bool 真假布尔型/只接受true和false两种值。不接受任何整数类型。 ,用户定义类型包括:类类型(class)结构类型(struct)接口类型(interface),值类型(Value Types)和引用类型(Reference Typ
4、es),值类型:内存顺序分配在栈中。他们包括:所有基本或内置类型(不包括string类型)、结构类型、枚举类型(enum type),引用类型:内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C+用delete)。它们使用new运算符来创建。引用类型包括:类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举类型结构型适于快速访问和拥有少量成员的数据类型。如果涉及量较多,你应该创建一个类来实现他。,数据类型转换隐式转换:从低精度的转换到高精度的,所以不可能转换到char;另外可以把0隐式转换成枚举型,其他整数不行。显式转换
5、0; static void Main(string args) short shortResult, shortVal = 4; int integerVal = 67;
6、 long longResult; float floatVal = 10.5F; double doubleResult, doubleVal = 99.999;
7、60; string stringResult, stringVal = "17" bool boolVal = true; Console.WriteLine("Variable Conversion Examplesn
8、数据类型转换范例n"); doubleResult = floatVal * shortVal; Console.WriteLine("Implicit,->double:0*1->2", floatVal, shortVal, doubleResult);
9、 shortResult = (short)floatVal; Console.WriteLine("Implicit,->short:0->1", floatVal, shortResult); strin
10、gResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal); Console.WriteLine("Explicit,->string:"0"+"1"->2", boolVal, doubleVal, stringResult);
11、; longResult = integerVal + Convert.ToInt64(stringVal); Console.WriteLine("Mixed,->long 0+1->2", integerVal, stringVal, longResult); 三,变量:,普通变量:(1),命名规则:字母或_或
12、 + 字母或_或数字 (/用于转义,用于逐个转义指定,常用于保留关键字前以保持与其他语言兼容)(2),声明变量: 变量类型 变量名变量赋值:变量 = 要赋的值C#变量被访问之前必须被初始化;否则编译时会报错。因此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。变量在使用前最好习惯是要先声明和初始化。(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。int i;string text;/在循环外未初始化for (i = 0;i<10;I+). text = "Line"
13、; + Convert.ToString(i);/在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。 Console.WriteLine("0,text);Console.WriteLine("Last txet output in loop:0,text);/出错。改正方法是在循环外初始化:string text=""(4)命名约定:简单的用camelCase,复杂的用PascalCase(5)变量的七种类型:class A. public static
14、int x;/静态变量,存在期从类装载直到该程序结束。 int y;/非静态变量,或实例变量,从类实例创建到实例空间释放。 /*/*v0是数组元素,a是值参数,b是引用参数,c是输出参数 */ void F(int v,int a,ref int b,out int c). int i = 1;/局部变量,不会被初始化 c = a + b+;/ ,枚举enum 枚举名:枚举值类型(默认是
15、int,默认赋值0,1,2.)枚举值1=.,枚举值2=.,枚举值3,/不赋值的话,默认为最后一个明确具体值的值+1.枚举名 变量名枚举名.枚举值namespace Ch05Ex02. enum orientation:byte . north=1, south=2, east=3, west=4 /*/Class1's Desciptionclass Class1 . static
16、160; void Main(string args) . byte directionByte; string directionString; orientation myDirection = orientation.north;
17、60; Console.WriteLine("mydirection = 0", myDirection); directionByte = (byte)myDirection;/因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。myDirection = (orientation)myByte; directionString = Convert.ToS
18、tring(myDirection);/等价命令是directionString = myDirection.ToString();/因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection);/反向转换命令是orientation myDirection = (orientation)Enum.Parse(typeof(orientation),myString);但由于enum不一定存得下 string,所以可能出错。如myString赋值为North,就不能映射到orientation中的north,出错。
19、0; Console.WriteLine("byte equivalent = 0", directionByte); Console.WriteLine("string equivalent = 0", directionString); ,结构struct 结构名:访问方式1 变量类型1 变量名1;/访问方式public/private访问方式2 变量类型2 变量名2;.结构名 结构
20、变量名;结构变量名.枚举值=.;,一维数组变量类型 数组名 = new 变量类型元素个数.元素0,元素1,元素2./元素个数必须是整数或者整数常量,而且必须与后面的元素列值个数相同,否则出错。元素个数的new声明和后面的元素列值可以只选一个,就能声明并初始化数组。遍历方法,For循环到.Lengthfor(i=0,i<friendNames.Length,i+). Console.WriteLine(friendNamesi);,Foreach进行只读访问foreach(string listName in friendNames) . Console.
21、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 = '
22、;'/设定分隔符string myWords =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
23、=myString.PadLeft(位数);/前补空格到指定位数myString=myString.PadRight(位数);/后补空格到指定位数myString=myString.PadLeft(位数,字符);/前补指定字符到指定位数char trimChars = "e","#","*"myString = myString.trim(trimChars);/删指定字符四,常量:Const int intTwo = 2 (必须声明的同时赋值)五,运算符:按优先级顺序排列算术运算符:前缀的+和- ,前缀一元的+和- 乘 *
24、 除 / 求余 % 加 + 减 - 位移运算符:<<,>>比较运算符:小于 < 大于 > 小于等于 <= 大于等于 >=比较运算符:=,!=逻辑运算符:&逻辑运算符:逻辑运算符:|逻辑运算符:&&逻辑运算符:|比较运算符:等于 = *= /= %= += -= <<= >>= &= = |= 后缀的+和-六,名称空间using system;
25、60; /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;break;Case 结果3:代码3;goto Case 结果2;/此时Case.相当于一个Labe
26、lCase 结果4:代码4;Return;Case 结果5:Case 结果6:Case 结果7:代码567;/只要满足上面三个Case之一就执行。break;.Default:代码;break;,三元运算语句:(条件)?True结果:False结果常用于简单赋值语句:string myString = (myInteger<10)?"Less than 10":"Great than or equal to"或者用于简单格式化文本语句:Console.WriteLine("I am 0 year1 old.",myinteger
27、,myinteger=1?"":"s");八,循环语句:,Do.While: 当条件为True时循环。Do .While(条件);/分号不可少,While.: 当条件为True 时循环。While(条件).,For.: 使用计数器循环。For (变量;条件;操作)/可以在此时声明变量,但作用域就仅限于循环内了。.Break;/跳出整个循环Return;Continue;/中止当前循环,继续下一个循环Goto 标签;/禁止从循环外部用goto跳入循环内部九,函数,函数定义: static 返回值类型/void 函数名(参
28、数类型1 参数1,参数类型2 参数2,.) . . return 返回值;/return必须在函数结束前被处理,不能跳过 /return ;/当用于void时用不带返回值的return来中止函数。 ,参数数组: static int sumVals(params int vals)
29、; . int sum =0; foreach(int val in vals) . sum+=val; return sum; static void Main(string args) . int sum = sumVals(1,5,2,9,8);
30、; Console.WriteLine("Summed Values = 0",sum); ,值传递参数/引用传递参数/out输出参数static void showDouble(ref int val)/引用传递参数. val*=2; Console.WriteLie("val doubled = 0",val);static void showDouble2(int val)/值传递参数. val*=2;
31、; Console.WriteLine("val doubled = 0",val);static void showDouble3(int val,out int valIndex)/out输出参数. val*=2; valIndex+; Console.WriteLine("val doubled = 0",val);int myNmuber = 5;showDouble(ref myNumber);/引用传递参数,会改变myNumber值,所以要求myNumber必须不
32、是常量或者未初始化的变量。showDouble2(myNumber);/值传递参数,不会改变myNumber值int valindex;/out输出参数,不用初始化,初始化了也会在函数开始执行时丢失值。showDouble3(myNumber,out valIndex);,全局变量static/const 变量名/const定义的全局变量是只读的当全局变量与局部变量同名时,局部变量优先,要用类似class1.myString来引用全局变量。,Main()函数;static void Main()static void Main(string args
33、)/args是函数命令行参数static int Main()/返回一个表示函数终止状态的int值static int Main(string args)/返回一个表示函数终止状态的int值,结构中的函数,同名函数的重载:同名,签名不同,系统自动识别使用哪个函数,委托:用于把引用存储为函数以灵活调用函数十,面向对象基础十一,类1,类的定义class 类名. /类成员internal/publicsealed/abstract十和,接口interface IMyInterface. /接口成员C#语法入门下面开始C#之行。 在开
34、始学习C#之前,先了解下C#语句的特点: 1. C#是区别大小。2. 每一句都以分号结束,不象VB.NET。3. 多个语句通过分号可以写在一行,不过不推荐,因为不清晰。OK,开始了。 先了解下其数据类型: bool true或false byte 8位无符号整数 short 16位整数 int 32位整数 long 64位整数 float 32位浮点数 double 64位浮点数 char 16位字符 string 多个16位字符 宽度窄的(即字节数少的)数据类型可以直接赋给较宽的数据类型,并会自动转换为新类型。例: float a = 9.9f; int b=4; a = b; /上述把一个
35、整型的4转换成了浮点型.同样也可以通过强制类型转换将宽类型的缩成窄类型例: float a = 9.9f; int b=4; b = (int)a; /注意必须把要转换的类型名称放在圆括号内,并放在其前面字符串与数值互换: string a = Convert.ToString(b); float a = Convert.ToSingle(b); 同样也可以像C语言那样格式化输出: float a=3.f; string b=a.ToString("#.#"); 变量与常量声明: C#中允许一条语句声明同一类型的多个变量 int a,b; 但为了语句清晰推荐将多个声明写成多
36、个语句。 有一点要注意,就是如果在声明数值型变量时没有小数部分,则自动为整数类型,有小数部分的,则自动为double类型,而不是float类型,可通过下面声明,转换为不同类型: float a=1.2f ; long b=23L ; 对于常量声明,习惯用大写符号来表示常数,如: const float PI = 3. ; 对于字符声明,得用单引号括起来,如: char a = ''d'' ; 还可以这样赋值: int a = b = c = 2; 虽然方便,但并不推荐,推荐将其拆成三个语句来写,这样结构也清晰。 (注:C#的变量名长度是任意的,可以由数字和大小写字母混合组成,但第一个必须是字母。 关于C#中的转义字符: n - 换行 r - 回车 t - 制表符 b - 退格 f - 换页 0 - 空符号 " - 双引号 '' -单引号 -反斜杠 还有一个较特殊的,就是号,只要语句前加号,即表示号后面的包括有转义符的都按不进行转义运算。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 种植桑黄方法
- 电缆线购买合同 购买电线合同
- 短视频创作者与经纪公司2024年度合作协议
- 2024年度金融投资与理财服务合同3篇
- 泵车租赁协议
- 二零二四年农业科研基地草坪除草合同
- 电梯维修合同范本
- 2024年度电梯门系统升级与改造合同3篇
- 玻璃容器生产与销售合同(04版)
- 二零二四年度设备采购合同
- 福建省福州第十八中学2023-2024学年八年级上学期期中语文试题
- 光伏项目达标投产实施细则-施工
- 完整审计合同模板
- 第八章 药品生产质量管理GMP课件
- 概论学习通超星期末考试答案章节答案2024年
- 人教版七年级生物上册第二单元第三章第三节真菌课件
- 瑜伽馆经营管理手册
- 湖北省武汉市武昌区2023-2024学年七上期中数学试题(解析版)
- 2024年浙江省初中学业水平考试社会试题
- 内容审核机制
- 开学第一课立规矩主题班会43在校不做“显眼包”
评论
0/150
提交评论