一周学会C#Word格式文档下载.docx

上传人:b****6 文档编号:21625032 上传时间:2023-01-31 格式:DOCX 页数:70 大小:54.17KB
下载 相关 举报
一周学会C#Word格式文档下载.docx_第1页
第1页 / 共70页
一周学会C#Word格式文档下载.docx_第2页
第2页 / 共70页
一周学会C#Word格式文档下载.docx_第3页
第3页 / 共70页
一周学会C#Word格式文档下载.docx_第4页
第4页 / 共70页
一周学会C#Word格式文档下载.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

一周学会C#Word格式文档下载.docx

《一周学会C#Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《一周学会C#Word格式文档下载.docx(70页珍藏版)》请在冰豆网上搜索。

一周学会C#Word格式文档下载.docx

publicstaticvoidMain(string[]args)

{

foreach(stringargsinargs){

System.Console.WriteLine(arg);

}}

程序中的Main函数必须为static。

2.标识符

标识符起名的规则:

局部变量、局部常量、非公有实例域、函数参数使用camelCase规则;

其他类型的标识符使用PascalCase规则。

privateStyle——camelCase规则(第一个单词的首字母小写,其余单词的首字母大写)

PublicStyle——PascalCase规则(所有单词的首字母大写)

尽量不要使用缩写。

Message,而不要使用msg。

不要使用匈牙利命名法。

publicsealedclassGrammarHelper

{...

publicQualifiedSymbolOptional(AnySymbolsymbol)

{...}

privateAnyMultiplicityoptional=

newOptionalMultiplicity();

}

3.关键字

C#中76个关键字:

abstractasbaseboolbreak

bytecasecatchcharchecked

classconstcontinuedecimaldefault

delegatedodoubleelseenum

eventexplicitexternfalsefinally

fixedfloatforforeachgoto

ifimplicitinintinterface

internalislocklongnamespace

newnullobjectoperatorout

overrideparamsprivateprotectedpublic

readonlyrefreturnsbytesealed

shortsizeofstackallocstaticstring

structswitchthisthrowtrue

trytypeofuintulongunchecked

unsafeushortusingvirtualvoid

while

5个在某些情况下是关键字:

getsetvalueaddremove

C#中有76个在任何情况下都有固定意思的关键字。

另外还有5个在特定情况下才有固定意思的标识符。

例如,value能用来作为变量名,但有一种情况例外,那就是它用作属性/索引器的set语句的时候是一关键字。

但你可以在关键字前加@来使它可以用作变量名:

int@int=42;

不过在一般情况下不要使用这种变量名。

你也可以使用@来产生跨越几行的字符串,这对于产生正则表达式非常有用。

例如:

stringpattern=@"

(#startthegroup

abra(cad)?

#matchabraandoptionalcad

)+"

;

#oneormoreoccurrences

如果你要在字符串中包含双引号,那你可以这样:

stringquote=@"

"

quote"

4.标点符号

{和}组成语句块

分号表示一个语句的结束

publicsealedclassHiker

publicstaticvoidMain()

一个C#的“类/结构/枚举”的定义不需要一个终止的分号。

publicsealedclassHiker

{

...

}//没有;

是正确的

然而你可以使用一个终止的分号,但对程序没有任何影响:

};

//有;

是可以的但不推荐

在Java中,一个函数的定义中可以有一个结尾分号,但在C#中是不允许的。

publicvoidHitch(){...};

//;

是不正确的

5.声明

声明是在一个块中引入变量

◆每个变量有一个标识符和一个类型

◆每个变量的类型不能被改变

这样声明一个变量是非法的:

这个变量可能不会被用到。

if(...)

intx=42;

//编译时出错

else

...

6.表达式

表达式是用来计算的!

♦每个表达式产生一个值

♦每个表达式必须只有单边作用

♦每个变量只有被赋值后才能使用

C#不允许任何一个表达式读取变量的值,除非编译器知道这个变量已经被初始化或已经被赋值。

例如,下面的语句会导致编译器错误:

intm;

if(...){

m=42;

}

Console.WriteLine(m);

//编译器错误,因为m有可能不会被赋值

7.取值

类型取值解释

booltruefalse布尔型

float3.14实型

double3.1415双精度型

char'

X'

字符型

int9整型

string"

Hello"

字符串

objectnull对象

8.操作符

操作符类型

+-*/%(取余数)算术

&

||!

?

:

逻辑

<

<

=>

>

=关系

==!

=相等

=赋值

9.编程风格

∙较正规的编程风格

♦在一个二元操作符的每一边都加一个空格

♦在每一个逗号后面而不是前面加一个空格

♦每一个关键字后面加一个空格

♦一行一个语句

♦分号前不要有空格

♦函数的园括号和参数之间不加空格

♦在一元操作符和操作数之间不加空格

在一个二元操作符的每一边都加一个空格:

Console.WriteLine("

{0}"

result/13);

//推荐

result/13);

//不推荐

在每一个逗号后面而不是前面加一个空格:

result/13);

每一个关键字后面加一个空格:

if(OneLine(comment))...//推荐

if(OneLine(comment))...//不推荐

分号前不要有空格:

result/13);

函数的园括号和参数之间不加空格:

if(OneLine(comment))...//不推荐

在一元操作符和操作数之间不加空格:

++keywordCount;

++keywordCount;

10.找错

boolchecked;

...1

publicstaticvoidmain()

{...}2

intmatched=symbol.Match(input)

if(matched>

0)

....

}3

charoptional="

?

stringtheory='

complex'

4

intmatched=0_or_more(symbol);

...5

第1段程序的错误:

checked是一个关键字

第2段程序的错误:

不是main,而是Main

第3段程序的错误:

变量声明语句没有分号

第4段程序的错误:

字符值必须用单引号表示,字符串必须用双引号表示

第5段程序的错误:

第一个错误是标识符不能以数字开头;

第二个错误是不能用下划线作标识符。

一周学会C#(函数)

1.前言

∙C#不支持全局函数

♦所有的函数必须在类内部声明

∙无源文件和头文件之分

♦所有的函数必须声明的时候被实现

intNotAllowed()//错误,C#没有全局函数

...

sealedclassMethods

voidInline()

{...

voidError()

};

//错误,函数不能有结尾分号

intAlsoError();

//错误,函数必须声明的时候被实现

和Java一样,C#不允许有全局函数。

所有的函数必须在类或结构内实现。

函数是类或结构的成员,函数也被称为方法。

C#允许可以在类的声明中加入结尾分号,例如:

sealedclassMethods

...

//可以有结尾分号

但是,C#不允许在函数的声明中加入结尾分号,例如:

voidNotAllowed(){...};

2.声明函数

∙函数参数列表

♦各参数以逗号隔开

♦参数必须命名

♦没有参数时括号不能省略

voidError(float)//错误,参数没有命名

voidNoError(floatdelta)

intError(void)//错误,无参数时不允许使用void

intNoError()

3.值型参数

∙一般的函数参数是实参的一个拷贝

♦实参必须预先被赋值

♦实参可以是常量类型

sealedclassParameterPassing

staticvoidMethod(intparameter)

parameter=42;

staticvoidMain()

intarg=0;

Console.Write(arg);

//结果为0

Method(arg);

(注:

为了叙述的方便,以后所出现的“参数”这个词均指函数参数,也就是所谓的形参)

没有被ref或out修饰的函数参数是一个值型参数。

值型参数只有在该参数所属的函数被调用的时候才存在,并且用调用时所传递的实参的值来进行初始化。

当函数调用结束时,值型参数不复存在。

只有被预先赋值的实参才能被传递给值型参数,例如:

intarg;

//arg没有被赋初值

Method(arg);

//错误,实参必须预先赋初值

传递给函数的实参可以是纯粹的数而不是变量,例如:

Method(42);

Method(21+21);

4.引用型参数

∙引用型参数是实参的一个别名

♦没有发生复制

♦实参必须是一个变量类型

♦实参和函数参数都要有ref

staticvoidMethod(refintparameter)

Method(refarg);

//结果为42

函数参数有ref修饰符时,被称为引用型参数。

引用型参数不产生新的存储区间。

实际上,引用型参数是函数调用时所传递的实参所代表的变量的别名。

结果是引用型参数只是实参所代表的变量的另一个名字。

ref修饰符必须同时出现在函数声明语句和函数调用语句中。

只有被预先赋值的实参才能被传递给引用型参数,例如:

Method(refarg);

传递给引用型参数的实参必须是变量类型,而不能是纯粹的值或常量。

Method(ref42);

//错误,引用型参数的实参不能是纯粹的值

constintarg=42;

Method(refarg);

//错误,引用型参数的实参不能是常量

5.out型参数

∙out型参数是实参的一个别名

♦实参不必预先赋值

♦实参必须是变量类型

♦函数参数必须被预先赋值才能使用

♦实参和函数参数都要有out

staticvoidMethod(outintparameter)

intarg;

//Console.Write(arg);

Method(outarg);

函数参数有out修饰符时,被称为out型参数。

out型参数不产生新的存储区间。

实际上,out型参数是函数调用时所传递的实参所代表的变量的别名。

结果是out型参数只是实参所代表的变量的另一个名字。

out修饰符必须同时出现在函数声明语句和函数调用语句中。

没有被预先赋值的实参能够被传递给引用型参数,例如:

Method(outarg);

//正确,实参可以不赋初值

传递给out型参数的实参必须是变量类型,而不能是纯粹的值或常量。

Method(out42);

//错误,out型参数的实参不能是纯粹的值

Method(outarg);

//错误,out型参数的实参不能是常量

6.in型参数?

∙readonly,const和in,都是C#关键字

♦它们不能被用于函数参数

♦ref/out型参数总是被赋于写的权力

7.函数重载

∙一个类中的函数可以有同一个名字,称为重载

♦函数名和参数称为标识

♦标识必须唯一

♦返回值类型不是标识

namespaceSystem

publicsealedclassConsole

publicstaticvoidWriteLine()

{...}

publicstaticvoidWriteLine(intvalue)

publicstaticvoidWriteLine(doublevalue)

...

publicstaticvoidWriteLine(objectvalue)

和C++与Java一样,C#允许一个类声明两个以上的同名函数,只要参数的类型或个数不同。

这就是重载。

但是,一个类不能包含标识为相同的实例函数和静态函数,例如:

sealedclassIllegal

voidOverload(){...}

staticvoidOverload(){...}//错误

和C++与Java一样,返回值的类型不是标识的一部分,不能被用作重载的标准,例如:

sealedclassAlsoIllegal

intRandom(){...}

doubleRandom(){...}//错误

8.ref/out重载

∙ref/out在大部分情况下是标识的一部分!

♦你可以重载一个ref型参数和一个普通参数

♦你可以重载一个out型参数和一个普通参数

♦你不可以重载一个ref型参数和一个out型参数

sealedclassOverloading

voidAllowed(intparameter)

voidAllowed(refintparameter)

//正确,重载一个ref型参数和一个普通参数

voidAlsoAllowed(intparameter)

voidAlsoAllowed(outintparameter)

{...}

//正确,重载一个out型参数和一个普通参数

voidNotAllowed(refintparameter)

voidNotAllowed(outintparameter)

//错误,不能重载一个ref型参数和一个out型参数

ref和out修饰符可以是一个函数的标识。

但是你不能同时重载ref和out型参数。

ref和out修饰符在某种意义上是“安全的“,因为只有ref型实参才能传递给ref型函数参数,只有out型实参才能传递给out型函数参数。

但是,当调用函数的时候,你会非常容易忘记ref和out修饰符,所以最好不要重载ref和out型参数。

sealedclassOverloading

publicstaticvoidExample(intparameter)

{...}

publicstaticvoidExample(refintparameter)

staticvoidMain()

{

intargument=42;

Example(argument);

//在这儿非常容易忘记ref修饰符

}

9.访问规则

●函数参数或返回值不能比所属函数的访问级别低

sealedclassT{...}//类的默认访问级别是internal

publicsealedclassBad

publicvoidParameter(Tt)//错误,函数的访问级别(public)比参数高

publicTReturn()//错误,函数的访问级别(public)比返回值高

publicsealedclassGood

privatevoidParameter(Tt)//正确,函数的访问级别(private)比参数低

privateTReturn()//正确,函数的访问级别(private)比返回值低

10.找错误

sealedclassBuggy

voidDefaulted(doubled=0.0)1

voidReadOnly(constrefWibblew)2

refintReturnType()3

refintfieldModifier;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1