C#语法简要Word下载.docx

上传人:b****5 文档编号:20534223 上传时间:2023-01-23 格式:DOCX 页数:14 大小:20.70KB
下载 相关 举报
C#语法简要Word下载.docx_第1页
第1页 / 共14页
C#语法简要Word下载.docx_第2页
第2页 / 共14页
C#语法简要Word下载.docx_第3页
第3页 / 共14页
C#语法简要Word下载.docx_第4页
第4页 / 共14页
C#语法简要Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C#语法简要Word下载.docx

《C#语法简要Word下载.docx》由会员分享,可在线阅读,更多相关《C#语法简要Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

C#语法简要Word下载.docx

有符号整型

uint

无符号整型

long

8

有符号长整型

ulong

无符号长整型

float

浮点数

double

双精度数

decimal

固定精度数

string

?

unicode字串型

char

unicode字符型

bool

真假布尔型//只接受true和false两种值。

不接受任何整数类型。

B,用户定义类型包括:

类类型(class)

结构类型(struct)

接口类型(interface)

2,值类型(ValueTypes)和引用类型(ReferenceTypes)

A,值类型:

内存顺序分配在栈中。

他们包括:

所有基本或内置类型(不包括string类型)、结构类型、枚举类型(enumtype)

B,引用类型:

内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C++用delete)。

它们使用new运算符来创建。

引用类型包括:

类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举类型

结构型适于快速访问和拥有少量成员的数据类型。

如果涉及量较多,你应该创建一个类来实现他。

3,数据类型转换

隐式转换:

从低精度的转换到高精度的,所以不可能转换到char;

另外可以把0隐式转换成枚举型,其他整数不行。

显式转换

shortshortResult,shortVal=4;

intintegerVal=67;

longlongResult;

floatfloatVal=10.5F;

doubledoubleResult,doubleVal=99.999;

stringstringResult,stringVal="

17"

;

boolboolVal=true;

Console.WriteLine("

VariableConversionExamples\n数据类型转换范例\n"

);

doubleResult=floatVal*shortVal;

Implicit,->

double:

{0}*{1}->

{2}"

floatVal,shortVal,doubleResult);

shortResult=(short)floatVal;

short:

{0}->

{1}"

floatVal,shortResult);

stringResult=Convert.ToString(boolVal)+Convert.ToString(doubleVal);

Explicit,->

string:

\"

{0}\"

+\"

{1}\"

->

boolVal,doubleVal,stringResult);

longResult=integerVal+Convert.ToInt64(stringVal);

Mixed,->

long{0}+{1}->

integerVal,stringVal,longResult);

三,变量:

1,普通变量:

(1),命名规则:

字母或_或@+字母或_或数字(/用于转义,@用于逐个转义指定,@常用于保留关键字前以保持与其他语言兼容)

(2),声明变量:

变量类型变量名

变量赋值:

变量=要赋的值

C#变量被访问之前必须被初始化;

否则编译时会报错。

因此,不可能访问一个未初始化变量(如不确定的指针、超出数组边界的表达式)。

变量在使用前最好习惯是要先声明和初始化。

(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。

inti;

stringtext;

//在循环外未初始化

for(i=0;

i<

10;

I++)

{

text="

Line"

+Convert.ToString(i);

//在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。

{0},text);

}

Lasttxetoutputinloop:

//出错。

改正方法是在循环外初始化:

stringtext="

"

(4)命名约定:

简单的用camelCase,复杂的用PascalCase?

(5)变量的七种类型:

classA

publicstaticintx;

//静态变量,存在期从类装载直到该程序结束。

inty;

//非静态变量,或实例变量,从类实例创建到实例空间释放。

/*v[0]是数组元素,a是值参数,b是引用参数,c是输出参数*/

voidF(int[]v,inta,refintb,outintc){

inti=1;

//局部变量,不会被初始化

c=a+b++;

//

2,枚举

  enum枚举名:

枚举值类型(默认是int,默认赋值0,1,2...)

  {

   枚举值1=...,

   枚举值2=...,

   枚举值3,//不赋值的话,默认为最后一个明确具体值的值+1

   ...

  枚举名变量名=枚举名.枚举值

namespaceCh05Ex02

enumorientation:

north=1,

south=2,

east=3,

west=4

///Class1'

sDesciption

classClass1

bytedirectionByte;

stringdirectionString;

orientationmyDirection=orientation.north;

mydirection={0}"

myDirection);

directionByte=(byte)myDirection;

//因为enum存得下byte,所以理论上可以正确地反过来转换,但逻辑上不一定正确。

myDirection=(orientation)myByte;

directionString=Convert.ToString(myDirection);

//等价命令是directionString=myDirection.ToString();

//因为不单是把枚举变量值转存到string变量中,所以不能用string(mydirection);

//反向转换命令

是orientationmyDirection=(orientation)Enum.Parse(typeof(orientation),myString);

但由于enum不一定存得下string,所以可能出错。

如myString赋值为North,

就不能映射到orientation中的north,出错。

byteequivalent={0}"

directionByte);

stringequivalent={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<

friendNames.Length,i++)

Console.WriteLine(friendNames[i]);

B,Foreach进行只读访问

foreach(stringlistNameinfriendNames)

Console.WriteLine(listName);

5,二维数组(多维)

  变量类型[,]数组名=new变量类型[一维元素个数,二维元素个数]{{元素00,元素01,元素02...},{元素10,元素11,元素12...}...}

6,直角数组(交错数组,数组中的数组)

7,字符串操作:

stringmyString="

Ihaveadream."

charmyChar=myString[2];

//把string变量当作只读的char数组使用,不能改写myString[2]

char[]myChars=myString.ToCharArray();

char[]separator={'

'

};

//设定分隔符

string[]myWords=myString.Split(separator);

//分隔成数组

myStringhave{0}chars"

myString.Length);

myString=myString.ToLower();

//转小写

myString=myString.ToUpper();

//转大写

myString=myString.Trim();

//删前后空格

myString=myString.TrimStart();

//删前空格

myString=myString.TrimEnd();

//删后空格

myString=myString.PadLeft(位数);

//前补空格到指定位数

myString=myString.PadRight(位数);

//后补空格到指定位数

myString=myString.PadLeft(位数,字符);

//前补指定字符到指定位数

char[]trimChars={"

e"

"

#"

*"

myString=myString.trim(trimChars);

//删指定字符

四,常量:

 ConstintintTwo=2(必须声明的同时赋值)

五,运算符:

按优先级顺序排列

算术运算符:

前缀的++和--,前缀一元的+和-乘*除/求余%加+减-

位移运算符:

<

>

>

比较运算符:

小于<

大于>

小于等于<

=大于等于>

=

==,!

逻辑运算符:

&

^

|

||

等于=*=/=%=+=-=<

=>

=&

=^=|=

后缀的++和--

六,名称空间

usingsystem;

//system是.netFrameWork?

应用程序根命名空间,之后就能在全局名称空间引用system中的代码。

namespace空间名称

 {

    using空间名称2.代码2;

//之后就能在代码1处直接引用代码2

    代码1;

    namespace空间名称2

    {

    代码2;

    }

 }

七,条件语句

A,If语句:

通用判断

  If(条件1)

  Else

  {}

B,Switch语句:

用于同条件多结果判断

  Switch(条件)

   {

    Case结果1:

    break;

    Case结果2:

    Case结果3:

    代码3;

    gotoCase结果2;

//此时Case..相当于一个Label

    Case结果4:

    代码4;

    Return;

    Case结果5:

    Case结果6:

    Case结果7:

    代码567;

//只要满足上面三个Case之一就执行。

    ...

    Default:

    代码;

   }

C,三元运算语句:

(条件)?

True结果:

False结果

常用于简单赋值语句:

stringmyString=(myInteger<

10)?

Lessthan10"

:

Greatthanorequalto"

或者用于简单格式化文本语句:

Console.WriteLine?

("

Iam{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,参数数组:

staticintsumVals(paramsint[]vals)

intsum=0;

foreach(intvalinvals)

sum+=val;

returnsum;

staticvoidMain(string[]args)

intsum=sumVals(1,5,2,9,8);

SummedValues={0}"

sum);

C,值传递参数/引用传递参数/out输出参数

staticvoidshowDouble(refintval)//引用传递参数

val*=2;

Console.WriteLie("

valdoubled={0}"

val);

staticvoidshowDouble2(intval)//值传递参数

staticvoidshowDouble3(intval,outintvalIndex)//out输出参数

valIndex++;

intmyNmuber=5;

showDouble(refmyNumber);

//引用传递参数,会改变myNumber值,所以要求myNumber必须不是常量或者未初始化的变量。

showDouble2(myNumber);

//值传递参数,不会改变myNumber值

intvalindex;

//out输出参数,不用初始化,初始化了也会在函数开始执行时丢失值。

showDouble3(myNumber,outvalIndex);

D,全局变量

static/const变量名//const定义的全局变量是只读的

当全局变量与局部变量同名时,局部变量优先,要用类似class1.myString来引用全局变量。

E,Main()函数;

staticvoidMain()

staticvoidMain(string[]args)//args是函数命令行参数

staticintMain()//返回一个表示函数终止状态的int值

staticintMain(string[]args)//返回一个表示函数终止状态的int值

F,结构中的函数

G,同名函数的重载:

同名,签名不同,系统自动识别使用哪个函数

H,委托:

用于把引用存储为函数以灵活调用函数

十,面向对象基础

十一,类

1,类的定义

class类名

//类成员

internal/public

sealed/abstract

十和,接口

interfaceIMyInterface

//接口成员

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

当前位置:首页 > 农林牧渔 > 林学

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

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