首页 C#基础语法大全

C#基础语法大全

举报
开通vip

C#基础语法大全一,注释语句 /*注释语句包含在"反斜杠* "和" *反斜杠"中, 或者两个反斜杠和换行符之中, 或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取) 要注意注释中的\,该续行符会把下一行连上来一起注释掉出错。*/ static void Main(string[]args) {//语句块包含在{}中 int MyInterger;//语句以;结束 string MyString;///忽略空白字符(空格/回车/TAB) MyInterger = 17; } //要注意防止注释...

C#基础语法大全
一,注释语句 /*注释语句包含在"反斜杠* "和" *反斜杠"中, 或者两个反斜杠和换行符之中, 或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取) 要注意注释中的\,该续行符会把下一行连上来一起注释掉出错。*/ static void Main(string[]args) {//语句块包含在{}中 int MyInterger;//语句以;结束 string MyString;///忽略空白字符(空格/回车/TAB) MyInterger = 17; } //要注意防止注释嵌套出错,可用#if,#endif预处理语句。 二,数据类型 1,基本型/内置型用户自定义型 A,内置类型:CS使用.net FrameWork库中的数据类型 sbyte = System.SByte,... 类型字节数解释 byte 1 无符号字节型 sbyte 1 有符号字节型 short 2 有符号短字节型 ushort 2 无符号短字节型 int 4 有符号整型 uint 4 无符号整型 long8 有符号长整型 ulong8 无符号长整型 float 4 浮点数 double8 双精度数 decimal 8 固定精度数 string unicode字串型 char unicode字符型 bool真假布尔型//只接受true和false两种值。不接受任何整数类型。 B,用户定义类型包括: 类类型(class) 结构类型(struct) 接口类型(interface) 2,值类型(Value Types)和引用类型(Reference Types) A,值类型:内存顺序分配在栈中。他们包括:所有基本或内置类型(不包括string 类型)、结构类型、枚举类型(enum type) B,引用类型:内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C++用delete)。它们使用new运算符来创建。 引用类型包括:类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举 结构型适于快速访问和拥有少量成员的数据类型。如果涉及量较多,你应该创建一个类来实现他。 3,数据类型转换 隐式转换:从低精度的转换到高精度的,所以不可能转换到char;另外可以把0隐式转换成枚举型,其他整数不行。 显式转换 static void 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 Examples\n数据类型转换范例\n"); doubleResult = 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:\"{0}\"+\"{1}\"->{2}", boolVal, doubleVal, stringResult); longResult = integerVal + Convert.ToInt64(stringVal); Console.WriteLine("Mixed,->long {0}+{1}->{2}", integerVal, stringVal, longResult); } 三,变量: 1,普通变量: (1),命名规则:字母或_或@ + 字母或_或数字(/用于转义,@用于逐个转义指定,@常用于保留关键字前以保持与其他语言兼容) (2),声明变量:变量类型变量名 变量赋值:变量= 要赋的值 C#变量被访问之前必须被初始化;否则编译时会报错。因此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。变量在使用前最好习惯是要先声明和初始化。 (3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。 int i; string text;//在循环外未初始化 0;i<10;I++) { text = "Line" + 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 int x;//静态变量,存在期从类装载直到该程序结束。 int y;//非静态变量,或实例变量,从类实例创建到实例空间释放。 /*v[0]是数组元素,a是值参数,b是引用参数,c是输出参数*/ void F(int[] v,int a,ref int b,out int c){ int i = 1;//局部变量,不会被初始化 c = a + b++;// } } 2,枚举 enum枚举名:枚举值类型(默认是int,默认赋值0,1,2...) { 枚举值1=..., 枚举值2=..., 枚举值3,//不赋值的话,默认为最后一个明确具体值的值+1 ... } 枚举名变量名=枚举名.枚举值 namespace Ch05Ex02 { enum orientation:byte { north=1, south=2, east=3, west=4 } ///Class1's Desciption class Class1 { static void Main(string[]args) { byte directionByte; string directionString; orientation myDirection = orientation.north; Console.WriteLine("mydirection = {0}", myDirection); directionByte = (byte)myDirection;//因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。myDirection = (orientation)myByte; directionString = Convert.ToString(myDirection);//等价命令是directionString = myDirection.ToString(); //因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection); //反向转换命令是orientation 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); } } } 3,结构 struct结构名: { 访问方式1 变量类型1 变量名1;//访问方式public/private 访问方式2 变量类型2 变量名2; ... } 结构名结构变量名; 结构变量名.枚举值=...; 4,一维数组 变量类型[]数组名= new变量类型[元素个数]{元素0,元素1,元素2...}//元素个数必须是整数或者整数常量,而且必须与后面的元素列值个数相同,否则出错。元素个数的new声明和后面的元素列值可以只选一个,就能声明并初始化数组。 遍历方法 A,For循环到.Length for(i=0,i> 比较运算符:小于<大于>小于等于<= 大于等于>= 比较运算符:==,!= 逻辑运算符:& 逻辑运算符:^ 逻辑运算符:| 逻辑运算符:&& 逻辑运算符:|| 比较运算符:等于= *= /= %= += -= <<= >>= &= ^= |= 后缀的++和-- 六,名称空间 using system; //system是.net FrameWork应用程序根命名空间,之后就能在全局名称空间引用system中的代码。 namespace空间名称 { using空间名称2.代码2;//之后就能在代码1处直接引用代码2 代码1; namespace空间名称2 { 代码2; } } 七,条件语句 A,If语句:通用判断 If (条件1) 代码1; Else 代码2; If (条件1) {} Else {} B,Switch语句:用于同条件多结果判断 Switch (条件) { Case 结果1: 代码1; break; Case 结果2: 代码2; break; Case 结果3: 代码3; goto Case 结果2;//此时Case..相当于一个Label Case 结果4: 代码4; Return; Case 结果5: Case 结果6: Case 结果7: 代码567;//只要满足上面三个Case之一就执行。 break; ... Default: 代码; break; } C,三元运算语句:(条件)?True结果:False结果 常用于简单赋值语句:string myString = (myInteger<10)?"Less than 10":"Great than or equal to"; 或者用于简单格式化文本语句:Console.WriteLine("I am {0} year{1} old.",myinteger,myinteger==1?"":"s"); 八,循环语句: A,Do...While:当条件为True时循环。 Do {...} While(条件);//分号不可少 B,While...:当条件为True 时循环。 While(条件) {...} C,For...:使用计数器循环。 For (变量;条件;操作)//可以在此时声明变量,但作用域就仅限于循环内了。 {... Break;//跳出整个循环 Return; Continue;//中止当前循环,继续下一个循环 Goto 标签;//禁止从循环外部用goto跳入循环内部 } 九,函数 A,函数定义: static返回值类型/void函数名(参数类型1 参数1,参数类型2 参数2,...) { ... return返回值;//return必须在函数结束前被处理,不能跳过//return ;//当用于void时用不带返回值的return来中止函数。 } B,参数数组: static int sumVals(params int[] vals) { 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); Console.WriteLine("Summed Values = {0}",sum); } C,值传递参数/引用传递参数/out输出参数 static void showDouble(ref int val)//引用传递参数 { val*=2; Console.WriteLie("val doubled = {0}",val); } static void showDouble2(int val)//值传递参数 { val*=2; 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 必须不是常量或者未初始化的变量。 showDouble2(myNumber);//值传递参数,不会改变myNumber值 int valindex;//out输出参数,不用初始化,初始化了也会在函数开始执行时丢失值。showDouble3(myNumber,out valIndex); D,全局变量 static/const变量名//const定义的全局变量是只读的 当全局变量与局部变量同名时,局部变量优先,要用类似class1.myString来引用全局变量。 E,Main()函数; static void Main() static void Main(string[]args)//args是函数命令行参数 static int Main()//返回一个表示函数终止状态的int值 static int Main(string[]args)//返回一个表示函数终止状态的int值 F,结构中的函数 G,同名函数的重载:同名,签名不同,系统自动识别使用哪个函数 H,委托:用于把引用存储为函数以灵活调用函数 十,面向对象基础 十一,类 1,类的定义 class类名 { //类成员 } internal/public sealed/abstract 十和,接口 interface IMyInterface { //接口成员 }
本文档为【C#基础语法大全】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_954223
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:26
分类:互联网
上传时间:2019-02-15
浏览量:43