一周学会C#.doc

上传人:sk****8 文档编号:3521418 上传时间:2019-06-01 格式:DOC 页数:51 大小:678KB
下载 相关 举报
一周学会C#.doc_第1页
第1页 / 共51页
一周学会C#.doc_第2页
第2页 / 共51页
一周学会C#.doc_第3页
第3页 / 共51页
一周学会C#.doc_第4页
第4页 / 共51页
一周学会C#.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、一周学会 C#(前言)C#才鸟(QQ:249178521)大家好!C#作为微软在 21 世纪推出的新语言,它有着其他语言无法比拟的优势。但如何在短时间内迅速掌握它,却是一个比较难的问题。但如果你看完这个教程后,你一定会理解并掌握 C#。这个教程共分六个部分,今天先介绍 C#中比较基本的概念。1.总体框架Hiker.cs 类名不一定等于文件名类名不一定等于文件名using System; /每一个程序必须在开头使用这一语句public sealed class HitchHiker public static void Main()/程序从 Main 开始执行 int result; resul

2、t = 9 * 6; int thirteen; thirteen = 13; Console.Write(result / thirteen); /输出函数Console.Write(result % thirteen); /上面各语句的具体用法以后会介绍 /* 这个程序用来 * 演示 C#的总体框架*/ 注意:上面的程序中,符号/表示注释,在/后面的同一行上的内容是注释;/*和*/ 这间的内容都是注释你可以在 windows 的命令行提示符下键入: csc Hiker.cs进行编译产生可执行文件 Hiker.exe然后在 windows 的命令行提示符下键入: Hiker,你就可以看到在屏

3、幕上显视42(注:你必须装有.net framework)和 Java 不一样,C#源 文件名不一定要和文件名不一定要和 C#源 文件中包含的类名相同。文件中包含的类名相同。C#对大小写敏感,所以 Main 的首字母为大写的 M(这一点大家要注意,尤其是熟悉 C 语言的朋友)。你可以定义一个返回值为 int 的 Main 函数,当返回值为 0 时表示成功:public static int Main() . return 0; single-line commentprogram execution starts at Main你也可以定义 Main 函数的返回值为 void:public s

4、tatic void Main() . 你还可以定义 Main 函数接收一个 string 数组:public static void Main(string args)foreach (string args in args) System.Console.WriteLine(arg);程序中的 Main 函数必须为 static。2.标识符标识符起名的规则: 局部变量、局部常量、非公有实例域、函数参数使用 camelCase规则;其他类型的标识符使用 PascalCase 规则。privateStyle camelCase 规则(第一个单词的首字母小写,其余单词的首字母大写)PublicS

5、tyle PascalCase 规则(所有单词的首字母大写) 尽量不要使用缩写。Message,而不要使用 msg。 不要使用匈牙利命名法。public sealed class GrammarHelper .public QualifiedSymbol Optional(AnySymbol symbol) . private AnyMultiplicity optional =new OptionalMultiplicity();3.关键字C#中中 76 个关键字:个关键字:abstract as base bool break byte case catch char checked cl

6、ass const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short s

7、izeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void while5 个在某些情况下是关键字:个在某些情况下是关键字:get set value add removeC#中有 76 个在任何情况下都有固定意思的关键字。另外还有 5 个在特定情况下才有固定意思的标识符。例如,value 能用来作为变量名,但有一种情况例外,那就是它用作属性/索引器的 set 语句的时候是一关键字。但你可以在关键字前加来使

8、它可以用作变量名:int int = 42;不过在一般情况下不要使用这种变量名。你也可以使用来产生跨越几行的字符串,这对于产生正则表达式非常有用。例如:string pattern = “( # start the groupabra(cad)? # match abra and optional cad)+“; # one or more occurrences如果你要在字符串中包含双引号,那你可以这样:string quote = “quote“;4.标点符号 和和 组成语句块组成语句块 分号表示一个语句的结束分号表示一个语句的结束using System; public sealed c

9、lass Hiker public static void Main() int result; result = 9 * 6;int thirteen;thirteen = 13;Console.Write(result / thirteen);Console.Write(result % thirteen); 一个 C#的“类/ 结构/枚举”的定义不需要一个终止的分号。public sealed class Hiker. / 没有 ;是正确的然而你可以使用一个终止的分号,但对程序没有任何影响:public sealed class Hiker.; /有;是可以的但不推荐在 Java 中,一

10、个函数的定义中可以有一个结尾分号,但在 C#中是不允许的。public sealed class Hikerpublic void Hitch() . ; /;是不正确的 / 没有 ;是正确的5.声明声明是在一个块中引入变量 每个变量有一个标识符和一个类型每个变量有一个标识符和一个类型 每个变量的类型不能被改变每个变量的类型不能被改变using System; public sealed class Hiker public static void Main() int result; result = 9 * 6; int thirteen; thirteen = 13; Console.W

11、rite(result / thirteen); Console.Write(result % thirteen); 这样声明一个变量是非法的:这个变量可能不会被用到。例如:if (.)int x = 42; /编译时出错else.6.表达式表达式是用来计算的 ! 每个表达式产生一个值每个表达式产生一个值 每个表达式必须只有单边作用每个表达式必须只有单边作用 每个变量只有被赋值后才能使用每个变量只有被赋值后才能使用using System; public sealed class Hiker public static void Main() int result; result = 9 *

12、6; int thirteen; thirteen = 13; Console.Write(result / thirteen); Console.Write(result % thirteen); C#不允许任何一个表达式读取变量的值,除非编译器知道这个变量已经被初始化或已经被赋值。例如,下面的语句会导致编译器错误:int m;if (.) m = 42;Console.WriteLine(m);/ 编译器错误,因为 m 有可能不会被赋值7.取值类型 取值 解释bool true false 布尔型float 3.14 实型double 3.1415 双精度型char X 字符型int 9

13、整型string “Hello“ 字符串object null 对象8.操作符操作符 类型+ - * / %(取余数) 算术/推荐Console.WriteLine(“0“, result/13); /不推荐在每一个逗号后面而不是前面加一个空格:在每一个逗号后面而不是前面加一个空格:Console.WriteLine(“0“, result / 13); /推荐Console.WriteLine(“0“,result / 13); /不推荐每一个关键字后面加一个空格:每一个关键字后面加一个空格:if (OneLine(comment) . /推荐if(OneLine(comment) . /不

14、推荐分号前不要有空格:分号前不要有空格:Console.WriteLine(“0“, result / 13); /推荐Console.WriteLine(“0“, result / 13) ; /不推荐函数的园括号和参数之间不加空格:函数的园括号和参数之间不加空格:if (OneLine(comment) . /推荐if (OneLine( comment ) . /不推荐在一元操作符和操作数之间不加空格:在一元操作符和操作数之间不加空格:+keywordCount; /推荐+ keywordCount; /不推荐10.找错bool checked; . 1public static voi

15、d main() . 2int matched = symbol.Match(input) if (matched 0) . 3char optional = “?“; string theory = complex; 4 int matched = 0_or_more(symbol); . 5第 1 段程序的错误: checked 是一个关键字第 2 段程序的错误:不是 main,而是 Main第 3 段程序的错误:变量声明语句没有分号第 4 段程序的错误:字符值必须用单引号表示,字符串必须用双引号表示第 5 段程序的错误:第一个错误是标识符不能以数字开头; 第二个错误是不能用下划线作标识符

16、。一周学会 C#(函数)C#才鸟(QQ:249178521)1.前言 C#不支持全局函数不支持全局函数 所有的函数必须在类内部声明所有的函数必须在类内部声明 无源文件和头文件之分无源文件和头文件之分 所有的函数必须声明的时候被实现所有的函数必须声明的时候被实现int NotAllowed() /错误,C# 没有全局函数 . sealed class Methods void Inline() . void Error() . ; /错误,函数不能有结尾分号int AlsoError(); /错误, 函数必须声明的时候被实现函数必须声明的时候被实现和 Java 一样,C#不允许有全局函数。所有的

17、函数必须在类或结构内实现。函数是类或结构的成员,函数也被称为方法。C#允许可以在类的声明中加入结尾分号,例如:sealed class Methods.;/可以有结尾分号但是,C#不允许在函数的声明中加入结尾分号,例如:sealed class Methodsvoid NotAllowed() . ; /错误,函数不能有结尾分号2.声明函数 函数参数列表函数参数列表 各参数以逗号隔开各参数以逗号隔开 参数必须命名参数必须命名 没有参数时括号不能省略没有参数时括号不能省略sealed class Methods void Error(float) /错误, 参数没有命名参数没有命名 . void

18、 NoError(float delta) . int Error(void) /错误,无参数时不允许使用 void . int NoError() . 3. 值型参数 一般的函数参数是实参的一个拷贝一般的函数参数是实参的一个拷贝 实参必须预先被赋值实参必须预先被赋值 实参可以是常量类型实参可以是常量类型sealed class ParameterPassing static void Method(int parameter) parameter = 42; static void Main() int arg = 0; Console.Write(arg); /结果为 0Method(ar

19、g); Console.Write(arg); /结果为 0 (注:为了叙述的方便,以后所出现的“参数”这个词均指函数参数,也就是所谓的形参)没有被 ref 或 out 修饰的函数参数是一个值型参数。值型参数只有在该参数所属的函数被调用的时候才存在,并且用调用时所传递的实参的值来进行初始化。当函数调用结束时,值型参数不复存在。只有被预先赋值的实参才能被传递给值型参数,例如:int arg; / arg 没有被赋初值Method(arg);/错误,实参必须预先赋初值传递给函数的实参可以是纯粹的数而不是变量,例如:Method(42);Method(21 + 21);4.引用型参数 引用型参数是实

20、参的一个别名引用型参数是实参的一个别名 没有发生复制没有发生复制 实参必须预先被赋值实参必须预先被赋值 实参必须是一个变量类型实参必须是一个变量类型 实参和函数参数都要有实参和函数参数都要有 refsealed class ParameterPassing static void Method(ref int parameter) parameter = 42; static void Main() int arg = 0; Console.Write(arg); /结果为 0Method(ref arg); Console.Write(arg); /结果为 42 函数参数有 ref 修饰符时

21、,被称为引用型参数。引用型参数不产生新的存储区间。实际上,引用型参数是函数调用时所传递的实参所代表的变量的别名。结果是引用型参数只是实参所代表的变量的另一个名字。ref 修饰符必须同时出现在函数声明语句和函数调用语句中。只有被预先赋值的实参才能被传递给引用型参数,例如:int arg; / arg 没有被赋初值Method(ref arg);/错误,实参必须预先赋初值传递给引用型参数的实参必须是变量类型,而不能是纯粹的值或常量。Method(ref 42); /错误,引用型参数的实参不能是纯粹的值const int arg = 42;Method(ref arg); /错误,引用型参数的实参不

22、能是常量5.out 型参数 out 型参数是实参的一个别名型参数是实参的一个别名 没有发生复制没有发生复制 实参不必预先赋值实参不必预先赋值 实参必须是变量类型实参必须是变量类型 函数参数必须被预先赋值才能使用函数参数必须被预先赋值才能使用 实参和函数参数都要有实参和函数参数都要有 outsealed class ParameterPassing static void Method(out int parameter) parameter = 42; static void Main() int arg; /Console.Write(arg); Method(out arg); Conso

23、le.Write(arg); /结果为 42 函数参数有 out 修饰符时,被称为 out 型参数。out 型参数不产生新的存储区间。实际上,out 型参数是函数调用时所传递的实参所代表的变量的别名。结果是out 型参数只是实参所代表的变量的另一个名字。out 修饰符必须同时出现在函数声明语句和函数调用语句中。没有被预先赋值的实参能够被传递给引用型参数,例如:int arg; / arg 没有被赋初值Method(out arg);/正确,实参可以不赋初值传递给 out 型参数的实参必须是变量类型,而不能是纯粹的值或常量。Method(out 42); /错误,out 型参数的实参不能是纯粹的

24、值const int arg = 42;Method(out arg); /错误,out 型参数的实参不能是常量6.in 型参数? readonly, const 和和 in, 都是都是 C# 关键字关键字 它们不能被用于函数参数它们不能被用于函数参数 ref/out 型参数总是被赋于写的权力型参数总是被赋于写的权力 7.函数重载 一个类中的函数可以有同一个名字,称为重载一个类中的函数可以有同一个名字,称为重载 函数名和参数称为标识函数名和参数称为标识 标识必须唯一标识必须唯一 返回值类型不是标识返回值类型不是标识namespace System public sealed class Con

25、sole public static void WriteLine() . public static void WriteLine(int value) . public static void WriteLine(double value) . . public static void WriteLine(object value) . . 和 C+与 Java 一样,C#允许一个类声明两个以上的同名函数,只要参数的类型或个数不同。这就是重载。但是,一个类不能包含标识为相同的实例函数和静态函数,例如:sealed class Illegalvoid Overload() . static void Overload() . /错误和 C+与 Java 一样,返回值的类型不是标识的一部分,不能被用作重载的标准,例如:sealed class AlsoIllegal

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。