您好,欢迎访问三七文档
一周学会C#(前言)大家好!C#作为微软在21世纪推出的新语言,它有着其他语言无法比拟的优势。但如何在短时间内迅速掌握它,却是一个比较难的问题。但如果你看完这个教程后,你一定会理解并掌握C#。这个教程共分六个部分,今天先介绍C#中比较基本的概念。1.总体框架Hiker.cs类类名名不不一一定定等等于于文文件件名名usingSystem;//每一个程序必须在开头使用这一语句publicsealedclassHitchHiker{publicstaticvoidMain()//程序从Main开始执行{intresult;result=9*6;intthirteen;thirteen=13;Console.Write(result/thirteen);//输出函数Console.Write(result%thirteen);}}//上面各语句的具体用法以后会介绍/*这个程序用来*演示C#的总体框架*/注意:上面的程序中,符号//表示注释,在//后面的同一行上的内容是注释;/*和*/这间的内容都是注释你可以在windows的命令行提示符下键入:cscHiker.cs进行编译产生可执行文件Hiker.exe然后在windows的命令行提示符下键入:Hiker,你就可以看到在屏幕上显视42(注:你必须装有.netframework)和Java不一样,C#源文文件件名名不不一一定定要要和和C#源文文件件中中包包含含的的类类名名相相同同。。C#对大小写敏感,所以Main的首字母为大写的M(这一点大家要注意,尤其是熟悉C语言的朋友)。你可以定义一个返回值为int的Main函数,当返回值为0时表示成功:publicstaticintMain(){...return0;}你也可以定义Main函数的返回值为void:ssiinnggllee--lliinneeccoommmmeennttpprrooggrraammeexxeeccuuttiioonnssttaarrttssaattMMaaiinnpublicstaticvoidMain(){...}你还可以定义Main函数接收一个string数组:publicstaticvoidMain(string[]args){foreach(stringargsinargs){System.Console.WriteLine(arg);}}程序中的Main函数必须为static。2.标识符标识符起名的规则:局部变量、局部常量、非公有实例域、函数参数使用camelCase规则;其他类型的标识符使用PascalCase规则。privateStylecamelCase规则(第一个单词的首字母小写,其余单词的首字母大写)PublicStylePascalCase规则(所有单词的首字母大写)尽量不要使用缩写。Message,而不要使用msg。不要使用匈牙利命名法。publicsealedclassGrammarHelper{...publicQualifiedSymbolOptional(AnySymbolsymbol){...}privateAnyMultiplicityoptional=newOptionalMultiplicity();}3.关键字CC##中中7766个个关关键键字字::abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinintinterfaceinternalislocklongnamespacenewnullobjectoperatoroutoverrideparamsprivateprotectedpublicreadonlyrefreturnsbytesealedshortsizeofstackallocstaticstringstructswitchthisthrowtruetrytypeofuintulonguncheckedunsafeushortusingvirtualvoidwhile55个个在在某某些些情情况况下下是是关关键键字字::getsetvalueaddremoveC#中有76个在任何情况下都有固定意思的关键字。另外还有5个在特定情况下才有固定意思的标识符。例如,value能用来作为变量名,但有一种情况例外,那就是它用作属性/索引器的set语句的时候是一关键字。但你可以在关键字前加@来使它可以用作变量名:int@int=42;不过在一般情况下不要使用这种变量名。你也可以使用@来产生跨越几行的字符串,这对于产生正则表达式非常有用。例如:stringpattern=@(#startthegroupabra(cad)?#matchabraandoptionalcad)+;#oneormoreoccurrences如果你要在字符串中包含双引号,那你可以这样:stringquote=@quote;4.标点符号{{和和}}组组成成语语句句块块分分号号表表示示一一个个语语句句的的结结束束usingSystem;publicsealedclassHiker{publicstaticvoidMain(){intresult;result=9*6;intthirteen;thirteen=13;Console.Write(result/thirteen);Console.Write(result%thirteen);}}一个C#的“类/结构/枚举”的定义不需要一个终止的分号。publicsealedclassHiker{...}//没有;是正确的然而你可以使用一个终止的分号,但对程序没有任何影响:publicsealedclassHiker{...};//有;是可以的但不推荐在Java中,一个函数的定义中可以有一个结尾分号,但在C#中是不允许的。publicsealedclassHiker{publicvoidHitch(){...};//;是不正确的}//没有;是正确的5.声明声明是在一个块中引入变量每每个个变变量量有有一一个个标标识识符符和和一一个个类类型型每每个个变变量量的的类类型型不不能能被被改改变变usingSystem;publicsealedclassHiker{publicstaticvoidMain(){intresult;result=9*6;intthirteen;thirteen=13;Console.Write(result/thirteen);Console.Write(result%thirteen);}}这样声明一个变量是非法的:这个变量可能不会被用到。例如:if(...)intx=42;//编译时出错else...6.表达式表达式是用来计算的!!每每个个表表达达式式产产生生一一个个值值每每个个表表达达式式必必须须只只有有单单边边作作用用每每个个变变量量只只有有被被赋赋值值后后才才能能使使用用usingSystem;publicsealedclassHiker{publicstaticvoidMain(){intresult;result=9*6;intthirteen;thirteen=13;Console.Write(result/thirteen);Console.Write(result%thirteen);}}C#不允许任何一个表达式读取变量的值,除非编译器知道这个变量已经被初始化或已经被赋值。例如,下面的语句会导致编译器错误:intm;if(...){m=42;}Console.WriteLine(m);//编译器错误,因为m有可能不会被赋值7.取值类型取值解释booltruefalse布尔型float3.14实型double3.1415双精度型char'X'字符型int9整型stringHello字符串objectnull对象8.操作符操作符类型+-*/%(取余数)算术&&||!?:逻辑==关系==!=相等=赋值9.编程风格较较正正规规的的编编程程风风格格在在一一个个二二元元操操作作符符的的每每一一边边都都加加一一个个空空格格在在每每一一个个逗逗号号后后面面而而不不是是前前面面加加一一个个空空格格每每一一个个关关键键字字后后面面加加一一个个空空格格一一行行一一个个语语句句分分号号前前不不要要有有空空格格函函数数的的园园括括号号和和参参数数之之间间不不加加空空格格在在一一元元操操作作符符和和操操作作数数之之间间不不加加空空格格在在一一个个二二元元操操作作符符的的每每一一边边都都加加一一个个空空格格::Console.WriteLine({0},result/13);//推荐Console.WriteLine({0},result/13);//不推荐在在每每一一个个逗逗号号后后面面而而不不是是前前面面加加一一个个空空格格::Console.WriteLine({0},result/13);//推荐Console.WriteLine({0},result/13);//不推荐每每一一个个关关键键字字后后面面加加一一个个空空格格::if(OneLine(comment))...//推荐if(OneLine(comment))...//不推荐分分号号前前不不要要有有空空格格::Console.WriteLine({0},result/13);//推荐Console.WriteLine({0},result/13);//不推荐函函数数的的园园括括号号和和参参数数之之间间不不加加空空格格::if(OneLine(comment))...//推荐if(OneLine(comment))...//不推荐在在一一元元操操作作符符和和操操作作数数之之间间不不加加空空格格::++keywordCount;//推荐++keywordCount;//不推荐10.找错boolchecked;...11publicstaticvoidmain(){...}22intmatched=symbol.Match(input)if(matched0){....}33charoptional=?;stringtheory='complex';44intmatched=0_or_more(symbol);...55第1段程序的错误:checked是一个关键字第2段程序的错误:不是main,而是Main第3段程序的错误:变量声明语句没有分号第4段程序的错误:字符值必须用单引号表示,字符串必须用双引号表示第5段程序的错误:第一个错误是标识符不能以数字开头;第二个错误是不能用下划线作标识符。一周学会C#(函数)C#才鸟(QQ:249178521)1.前言CC##不不支支持持全全局局函函数数所所有有的的函函数数必必须须在在类类内内部部声声明明无无源源文文件件和和头头文文件件之之分分所所有有的的函函数数必必须须声声明明的的时时候候被被实实现现intNotAllowed()//错误,C#没有全局函数{...}sealedclassMethods{voidInline(){...}voidError(){...};//错误,函数不能有结尾分号intAlsoError();//错误,函函数数必必须须声声明明的的时时候候被被实实现现}和Java一样,C#不允许有全局函数。所有的函数必须在类或结构内实现。函数是类或结构的成员,函数也被称为方法。C#允许可以在类的声明中加入结尾分号,例如:sealedclassMethods{...};//可以有结尾分号但是,C#不允许在函数的声明中加入结尾分号,例如:sealedclassMethods{voidNotAllowed(){...};//错误,函数不能有结尾分号}2.声明函数
本文标题:一周学会_C#
链接地址:https://www.777doc.com/doc-5325920 .html