C#语法概要总结Word文件下载.docx

上传人:b****4 文档编号:6287301 上传时间:2023-05-06 格式:DOCX 页数:46 大小:38.35KB
下载 相关 举报
C#语法概要总结Word文件下载.docx_第1页
第1页 / 共46页
C#语法概要总结Word文件下载.docx_第2页
第2页 / 共46页
C#语法概要总结Word文件下载.docx_第3页
第3页 / 共46页
C#语法概要总结Word文件下载.docx_第4页
第4页 / 共46页
C#语法概要总结Word文件下载.docx_第5页
第5页 / 共46页
C#语法概要总结Word文件下载.docx_第6页
第6页 / 共46页
C#语法概要总结Word文件下载.docx_第7页
第7页 / 共46页
C#语法概要总结Word文件下载.docx_第8页
第8页 / 共46页
C#语法概要总结Word文件下载.docx_第9页
第9页 / 共46页
C#语法概要总结Word文件下载.docx_第10页
第10页 / 共46页
C#语法概要总结Word文件下载.docx_第11页
第11页 / 共46页
C#语法概要总结Word文件下载.docx_第12页
第12页 / 共46页
C#语法概要总结Word文件下载.docx_第13页
第13页 / 共46页
C#语法概要总结Word文件下载.docx_第14页
第14页 / 共46页
C#语法概要总结Word文件下载.docx_第15页
第15页 / 共46页
C#语法概要总结Word文件下载.docx_第16页
第16页 / 共46页
C#语法概要总结Word文件下载.docx_第17页
第17页 / 共46页
C#语法概要总结Word文件下载.docx_第18页
第18页 / 共46页
C#语法概要总结Word文件下载.docx_第19页
第19页 / 共46页
C#语法概要总结Word文件下载.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C#语法概要总结Word文件下载.docx

《C#语法概要总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《C#语法概要总结Word文件下载.docx(46页珍藏版)》请在冰点文库上搜索。

C#语法概要总结Word文件下载.docx

char

IEEE浮点型:

float,double

高精度小数:

decimal

布尔型:

bool

枚举类型

enumE{...}形式的用户定义的类型

结构类型

structS{...}形式的用户定义的类型

引用类型

类类型

所有其他类型的最终基类:

object

Unicode字符串:

string

classC{...}形式的用户定义的类型

接口类型

interfaceI{...}形式的用户定义的类型

数组类型

一维和多维数组,例如int[]和int[,]

委托类型

delegateTD(...)形式的用户定义的类型

八种整型类型分别支持8位、16位、32位和64位整数值的有符号和无符号的形式。

两种浮点类型:

float和double,分别使用32位单精度和64位双精度;

decimal类型是128位的数据类型,适合用于财务计算和货币计算。

C#的bool类型用于表示布尔值为true或者false的值。

下表总结了C#的数值类型。

位数

类型

范围/精度

有符号整型

8

sbyte

–128...127

16

short

–32,768...32,767

32

int

–2,147,483,648...2,147,483,647

64

long

–9,223,372,036,854,775,808...9,223,372,036,854,775,807

无符号整型

byte

0...255

ushort

0...65,535

uint

0...4,294,967,295

ulong

0...18,446,744,073,709,551,615

浮点数

float

1.5 

×

 

10−45至3.4 

1038,7位精度

double

5.0 

10−324至1.7 

10308,15位精度

小数

128

decimal

1.0 

10−28至7.9 

1028,28位精度

object是所有类型的最终基类:

C#中的每个类型直接或间接地从object类类型派生。

值类型的值则通过执行装箱(boxing)和拆箱(unboxing)操作亦按对象(引用类型)处理。

下面的示例将int值转换为object,然后又转换回int。

usingSystem;

classTest

{

staticvoidMain(){

inti=123;

objecto=i;

//Boxing

intj=(int)o;

//Unboxing

}

}

当将值类型的值转换为类型object时,将分配一个对象实例(也称为“箱子”)以包含该值,并将值复制到该箱子中。

反过来,当将一个object引用强制转换为值类型时,将检查所引用的对象是否含有正确的值类型,如果是,则将箱子中的值复制出来。

C#的统一类型系统实际上意味着值类型可以“按需”转换为对象。

object类型的通用库(例如.NETFramework中的集合类)既可以用于引用类型,又可以用于值类型。

C#变量(variable):

字段、数组元素、局部变量和参数。

1.2表达式:

下表总结了C#运算符,并按优先级从高到低的顺序列出各运算符类别。

同一类别中的运算符优先级相同。

表达式

基本

x.m

成员访问

x(...)

方法和委托调用

x[...]

数组和索引器访问

x++

后增量

x--

后减量

newT(...)

对象和委托创建

newT[...]

数组创建

typeof(T)

获得T的System.Type对象

checked(x)

在checked上下文中计算表达式

unchecked(x)

在unchecked上下文中计算表达式

一元

+x

表达式的值相同

-x

求相反数

!

x

逻辑求反

~x

按位求反

++x

前增量

--x

前减量

(T)x

显式将x转换为类型T

乘除

x*y

乘法

x/y

除法

x%y

求余

加减

x+y

加法、字符串串联、委托组合

x–y

减法、委托移除

移位

x<

<

y

左移

x>

>

右移

关系和类型检测

小于

大于

=y

小于或等于

大于或等于

xisT

如果x属于T类型,则返回true,否则返回false

xasT

返回转换为类型T的x,如果x不是T则返回null

相等

x==y

等于

x!

不等于

逻辑AND

x&

整型按位AND,布尔逻辑AND

逻辑XOR

x^y

整型按位XOR,布尔逻辑XOR

逻辑OR

x|y

整型按位OR,布尔逻辑OR

条件AND

&

仅当x为true才对y求值

条件OR

x||y

仅当x为false才对y求值

条件

x?

y:

z

如果x为true,则对y求值,如果x为false,则对z求值

赋值

x=y

xop=y

复合赋值;

支持的运算符有:

*=/=%=+=-=<

=>

=&

=^=|=

1.3语句

声明语句:

用于声明局部变量和常量。

表达式语句:

用于对表达式求值。

可用作语句的表达式包括方法调用、使用new运算符的对象分配、使用=和复合赋值运算符的赋值,以及使用++和--运算符的增量和减量运算。

选择语句:

用于根据表达式的值从若干个给定的语句中选择一个来执行。

这一组语句有if和switch语句。

迭代语句:

用于重复执行嵌入语句。

这一组语句有while、do...while、for和foreach语句。

跳转语句:

用于转移控制。

这一组语句有break、continue、goto、throw和return语句。

异常处理语句:

try...catch语句用于捕获在块的执行期间发生的异常,try.....catch.....finally语句用于指定终止代码,不管是否发生异常,该代码都始终要执行。

checked语句和unchecked语句:

用于控制整型算术运算和转换的溢出检查上下文。

lock语句:

用于获取某个给定对象的互斥锁,执行一个语句,然后释放该锁。

using语句:

用于获得一个资源,执行一个语句,然后释放该资源。

下表列出了C#的各语句,并提供每个语句的示例。

语句

示例

局部变量声明

staticvoidMain(){

inta;

intb=2,c=3;

a=1;

Console.WriteLine(a+b+c);

局部常量声明

constfloatpi=3.1415927f;

constintr=25;

Console.WriteLine(pi*r*r);

表达式语句

inti;

i=123;

//Expressionstatement

Console.WriteLine(i);

//Expressionstatement

i++;

//Expressionstatement

if语句

staticvoidMain(string[]args){

if(args.Length==0){

Console.WriteLine("

Noarguments"

);

else{

Oneormorearguments"

switch语句

intn=args.Length;

switch(n){

case0:

Console.WriteLine("

break;

case1:

Oneargument"

default:

{0}arguments"

n);

}

while语句

inti=0;

while(i<

args.Length){

Console.WriteLine(args[i]);

i++;

Do...while语句

strings;

do{

s=Console.ReadLine();

if(s!

=null)Console.WriteLine(s);

}while(s!

=null);

for语句

for(inti=0;

i<

args.Length;

i++){

foreach语句

foreach(stringsinargs){

Console.WriteLine(s);

break语句

while(true){

strings=Console.ReadLine();

if(s==null)break;

continue语句

if(args[i].StartsWith("

/"

))continue;

goto语句

gotocheck;

loop:

Console.WriteLine(args[i++]);

check:

if(i<

args.Length)gotoloop;

return语句

staticintAdd(inta,intb){

returna+b;

Console.WriteLine(Add(1,2));

return;

throw和try

staticdoubleDivide(doublex,doubley){

if(y==0)thrownewDivideByZeroException();

returnx/y;

try{

if(args.Length!

=2){

thrownewException("

Twonumbersrequired"

doublex=double.Parse(args[0]);

doubley=double.Parse(args[1]);

Console.WriteLine(Divide(x,y));

catch(Exceptione){

Console.WriteLine(e.Message);

checked和unchecked语句

inti=int.MaxValue;

checked{

Console.WriteLine(i+1);

//Exception

unchecked{

//Overflow

lock语句

classAccount

decimalbalance;

publicvoidWithdraw(decimalamount){

lock(this){

if(amount>

balance){

thrownewException("

Insufficientfunds"

}

balance-=amount;

using语句

using(TextWriterw=File.CreateText("

test.txt"

)){

w.WriteLine("

Lineone"

Linetwo"

Linethree"

1.4类和对象

类(class)是最基础的C#类型。

类是一个数据结构,将状态(又叫属性)(字段)和操作(方法和其他函数成员)组合在一个单元中。

类为为动态创建的类实例提供了定义,实例也称为对象。

类支持继承和多态性,

派生类可用来扩展和专用化基类。

使用类声明可以创建新的类。

下面是一个名为Point的简单类的声明:

publicclassPoint

publicintx,y;

publicPoint(intx,inty){

this.x=x;

this.y=y;

类的实例使用new运算符创建,该运算符为新的实例分配内存,调用构造函数初始化该实例,并返回对该实例的引用。

下面的语句创建两个Point对象,并将对这两个对象的引用存储在两个变量中:

Pointp1=newPoint(0,0);

Pointp2=newPoint(10,20);

当不再使用对象时,该对象占用的内存将自动收回。

在C#中,没有必要也不可能显式释放分配给对象的内存。

1.4.1成员

类的成员:

静态成员(staticmember),实例成员(instancemember)。

静态成员属于类,实例成员属于对象(类的实例)。

下表提供了类所能包含的成员种类的概述。

成员

常量

与类关联的常数值

字段

类的变量

方法

类可执行的计算和操作

属性

与读写类的命名属性相关联的操作

索引器

与以数组方式索引类的实例相关联的操作

事件

可由类生成的通知

运算符

类所支持的转换和表达式运算符

构造函数

初始化类的实例或类本身所需的操作

析构函数

在永久丢弃类的实例之前执行的操作

类所声明的嵌套类型

1.4.2可访问性

类的每个成员都有关联的可访问性,它控制能够访问该成员的程序文本区域。

有五种可能的可访问性形式。

下表概述了这些可访问性。

可访问性

含义

public

访问不受限制

protected

访问仅限于此类和从此类派生的类

internal

访问仅限于此程序

protectedinternal

访问仅限于此程序和从此类派生的类

private

访问仅限于此类

1.4.3基类

类声明可通过在类名称后面加上一个冒号和基类的名称来指定一个基类。

省略基类的指定等同于从类型object派生。

在下面的示例中,Point3D的基类为Point,而Point的基类为object:

publicclassPoint3D:

Point

publicintz;

publicPoint3D(intx,inty,intz):

Point(x,y){

this.z=z;

派生类继承它的基类的成员,隐式地包含其基类的所有成员,但基类的构造函数除外。

派生类能够在继承基类的基础上添加新的成员,但是它不能移除继承成员的定义。

在前面的示例中,Point3D类从Point类继承了x字段和y字段,每个Point3D实例都包含三个字段x、y和z。

类类型的变量可以引用该类的实例或任何派生类的实例(原因:

从某个类类型到它的任何基类类型存在隐式的转换)。

例如,对于前面给定的类声明,Point类型的变量既可以引用Point也可以引用Point3D:

Pointa=newPoint(10,20);

Pointb=newPoint3D(10,20,30);

1.4.4字段

字段是与类或类的实例关联的变量。

使用static修饰符声明的字段定义了一个静态字段(staticfield)。

一个静态字段只标识一个存储位置。

对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。

可以着全局变量。

不使用static修饰符声明的字段定义了一个实例字段(instancefield)。

类的每个实例都包含了该类的所有实例字段的一个单独副本。

在下面的示例中,Color类的每个实例都有实例字段r、g和b的单独副本,但是Black、White、Red、Green和Blue静态字段只存在一个副本:

publicclassColor

publicstaticreadonlyColorBlack=newColor(0,0,0);

publicstaticreadonlyColorWhite=newColor(255,255,255);

publicstaticreadonlyColorRed=newColor(255,0,0);

publicstaticreadonlyColorGreen=newColor(0,255,0);

publicstaticreadonlyColorBlue=newColor(0,0,255);

privatebyter,g,b;

publicColor(byter,byteg,byteb)

this.r=r;

this.g=g;

this.b=b;

如上面的示例所示,可以使用readonly修饰符声明只读字段(read-onlyfield)。

给readonly字段的赋值只能作为字段声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现。

1.4.5方法

方法(method)是一种用于实现可以由对象或类执行的计算或操作的成员。

静态方法(staticmethod)通过类来访问。

实例方法(instancemethod)通过类的实例来访问。

方法具有一个参数(parameter)列表(可能为空),表示传递给该方法的值或变量引用;

方法还具有一个返回类型(returntype),指定该方法计算和返回的值的类型。

如果方法不返回值,则其返回类型为void。

方法的签名(signature)在声明该方法的类中必须唯一。

方法的签名由方法的名称及其参数的数目、修饰符和类型组成。

方法的签名不包含返回类型。

1.4.5.1参数

参数用于向方法传递值或变量引用。

方法的参数从方法被调用时指定的实参(argument)获取它们的实际值。

有四种类型的参数:

值参数、引用参数、输出参数和参数数组。

值参数(valueparameter)用于输入参数的传递。

一个值参数相当于一个局部变量,只是它的初始值来自为该形参传递的实参。

值参数一旦传入后,对值参数的修改不影响

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2