C#程序设计基础两篇.docx

上传人:b****6 文档编号:3639459 上传时间:2022-11-24 格式:DOCX 页数:63 大小:272.64KB
下载 相关 举报
C#程序设计基础两篇.docx_第1页
第1页 / 共63页
C#程序设计基础两篇.docx_第2页
第2页 / 共63页
C#程序设计基础两篇.docx_第3页
第3页 / 共63页
C#程序设计基础两篇.docx_第4页
第4页 / 共63页
C#程序设计基础两篇.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

C#程序设计基础两篇.docx

《C#程序设计基础两篇.docx》由会员分享,可在线阅读,更多相关《C#程序设计基础两篇.docx(63页珍藏版)》请在冰豆网上搜索。

C#程序设计基础两篇.docx

C#程序设计基础两篇

C#程序设计基础两篇

篇一:

C#程序设计基础

在第一章里,了解了ASP.NET3.5的特性和一些基本的.NETFramework知识,不过如果要深入到ASP.NET3.5应用程序开发,需要对开发语言有更加深入的了解。

而在.NET平台上,微软主推的编程语言就是C#,本章将会从C#的语法、结构和特性来讲解,以便读者能够深入的了解C#程序设计。

2.1C#程序

C#程序有自己的程序结构。

C#编程语言类似C++/Java等面向对象编程语言,同样需要编写类、创建对象等。

但是C#依旧有与其他面向对象编程语言不同的特性,使用这些特性能够快速的正确的编写C#宿主语言的应用程序,如ASP.NET、WinForm等。

2.1.1C#程序的结构

在开始学习和编写C#代码之前,首先应该了解C#编程语言的结构,下列代码说明了C#应用程序的基本结构。

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;//使用命名空间

namespacemycsharp//程序代码命名空间

{

classProgram//应用程序主类

{

staticvoidMain(string[]args)//入口方法

{

Console.WriteLine("HelloWorld");//输出HelloWorld

Console.ReadKey();//等待用户输入

}

}

}

其中,using关键字的用途是引用微软的.NET框架中现有的类库资源,该关键字出现在应用程序代码的开头,并使用在cs为后缀的文件中使用。

using关键字通常情况下会出现几次,其目的是引用类库中的各种资源,这些资源不仅包括代码中的System,System.Collections.Generic,Linq,还包括其他.NET框架的资源。

System命名空间提供了构建应用程序所需的各种系统功能,例如LINQ的类库包括了构建LINQ应用程序的各种类库资源。

.NET中提供大量的命名空间,以便开发人员能够使用现有的类库进行应用程序的开发。

同时,在代码中也可以看到在其中包含一个mycsharp的一个命名空间,示例代码如namespacemycsharp。

在当前程序中声明该命名空间,可以在其他的程序中引用这个命名空间,并使用此命名空间下的类和方法。

另外,Program是一个类名。

在C#或其他的任何面向对象语言中(如JAVA、C++)都需要编写类,类用于创建对象。

在上述代码中,Program是一个类的名称。

方法是用于描述类的行为。

在上述示例第9行中,staticvoidMain是一个全局静态方法,它指示编译器从此处开始执行程序,相当于程序的入口,程序运行的时候会执行Main方法作为入口。

在C#Windows编程中,大部分的应用程序必须在其组成程序的其中一个类中包含Main方法。

语句就是在C#应用程序中包含的指令,通过使用分号进行分割,编译器通过分号来区分它们。

一些编程语言只允许一行放置一条语句,但是C#允许放置多个语句,也可以将一个语句拆分成多行。

虽然C#编译器支持这样的特性,但是还是推荐使用一行放置一个语句的,这样不仅提高了可读性,也便于书写。

括号“{”和“}”用来标识程序中代码的范围,如上述代码中Main方法囊括了Main方法的语句,Program类囊括了类的方法,而namespacemycsharp命名空间囊括了此命名空间里的所有类。

值得注意的是,VisualStudio20XX为开发人员在编写程序的时候提供了诸多的智能提示,在完成一个类或一个变量时,系统会自动补全,而当鼠标放到一个大括号上的时候,编译器会指示开发人员此括号的范围,如图2-1所示。

图2-1外围元素被标记

注意:

在一个类内的所有方法都是独立的方法,所以每个大括号后面都不需要分号,同样对于命名空间里的所有类也是一样。

2.1.2C#IDE的代码设置

代码格式也是程序设计中一个非常重要的组成环节,他可以帮助用户组织代码和改进代码,也让代码具有可读性。

具有良好可读性的代码能够让更多的开发人员更加轻松的了解和认知代码。

按照约定的格式书写代码是一个非常良好的习惯,下面的代码示例说明了应用缩进、大小写敏感、空白区和注释等格式的原则。

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;//使用LINQ命名空间

usingSystem.Text;

namespacemycsharp//声明命名空间

{

classProgram//主程序类

{

staticvoidMain(string[]args)//静态方法

{

Console.WriteLine("HelloWorld");//这里输出HelloWorld

Console.WriteLine("按任意键退出..");Console.ReadKey();//这里让用户按键后退出,保持等待状态

}

}

}

1.缩进

缩进可以帮助开发人员阅读代码,同样能够给开发人员带来层次感。

读者可以从以上代码看出这一串代码让人能够很好的分辨区域,非常方便的就能找到Main方法的代码区域,这是因为括号都是有层次的。

缩进让代码保持优雅,同一语句块中的语句应该缩进到同一层次,这是一个非常重要的约定,因为它直接影响到代码的可读性。

虽然缩进不是必须的,同样也没有编译器强制,但是为了在不同人员的开发中能够进行良好的协调,这是一个值得去遵守的约定。

2.大小写敏感

C#是一种对大小写敏感的编程语言。

可能php等其他语言的开发人员不太适应大小写敏感,但是在C#中,其语法规则的确是对字符串中字母的大小写敏感的,例如“CSharp”、“cSharp”、“csHaRp”都是不同的字符串,在编程中应当注意。

3.空白

C#编译器会忽略到空白。

使用空白能够改善代码的格式,提高代码的可读性。

但是值得注意的是,编译器不对引号内的任何空白做忽略,在引号内的空格作为字符串存在。

4.注释

在C/C++里,编译器支持开发人员编写注释,以便开发人员能够方便的阅读代码。

当然,在C#里也一样继承了这个良好的习惯。

之所以这里说的是习惯,是因为编写注释同缩进一样,没有人强迫要编写注释,但是良好的注释习惯能够让代码更加优雅和可读,谁也不希望自己的代码在某一天过后自己也不认识了。

注释的写法是以符号“/*”开始,并以符号“*/”结束,这样能够让开发人员更加轻松的了解代码的作用,同时,也可以使用符号“//”双斜线来写注释,但是这样的注释是单行的,示例代码如下所示。

/*

*多行注释

*本例演示了在程序中写注释的方法

在注释内也可以不要开头的*号

*/

//单行注释,一般对单个语句进行注释

5.布局风格

classProgram

{

staticvoidMain(string[]args)

{

Console.WriteLine("HelloWorld");//这里输出HelloWorld

Console.WriteLine("按任意键退出..");Console.ReadKey();//这里让用户按键后退出,保持等待状态

}

}

从以上代码可以看出,程序中使用了缩进、大小写敏感,空白区和注释等,但是这个代码风格依旧不是最好,可以修改代码让代码更加“好看”。

这里能够将代码进行修正,修正后的示例代码如下所示。

classProgram

{

staticvoidMain(string[]args)

{

Console.WriteLine("HelloWorld");//这里输出HelloWorld

Console.WriteLine("按任意键退出..");

Console.ReadKey();//这里让用户按键后退出,保持等待状态

}

}

这种布局风格让开发人员感觉到耳目一新,这样更能方便更多的开发人员阅读源代码。

如果打开一千行或更多代码量的源文件时,其编码格式都是标准的风格的话,不管是谁再接手去阅读,都能尽快上手。

不仅如此,在软件开发当中,应该规定好每个人都使用同样的布局风格,让团队能够协调运作。

2.2变量

在任何编程语言中,无论是传统的面向过程还是面向对象都必须使用变量。

因此,变量都有自己的数据类型,在使用变量的时候,必须使用相同的数据类型进行运算。

在程序的运行中,计算中临时存储的数据都必须用到变量,变量的值也会放置在内存当中,由计算机运算后再保存到变量中,由此可见,变量在任何的应用程序开发中都是非常基础也是非常重要的。

同样,在C#中也需要变量对数据进行存储,本节将会介绍C#的基本语法、数据类型、变量、枚举等。

2.2.1定义

要声明一个变量就需要为这个变量找到一个数据类型,在C#中,数据类型由.NETFramework和C#语言来决定,表2-1列举了一些预定义的数据类型。

表2-1预定义数据类型

预定义类型

定义

字节数

byte

0~255之间的整数

1

sbyte

-128~127之间的整数

1

short

-32768~32767之间的整数

2

ushort

0~65535之间的整数

2

int

-2147483648~2147483647之间的整数

4

uint

0~4294967259之间的整数

4

long

-9223372036854775808~9223372036854775807之间的整数

8

ulong

0~184********709551615之间的整数

8

bool

布尔值,trueoffalse

1

float

单精度浮点值

4

double

双精度浮点值

8

decimal

精确的十进制值,有28个有效单位

12

object

其他所有类型的基类

N/A

char

0~65535之间的单个Unicode字符

2

string

任意长度的Unicode字符序列

N/A

一个简单的声明变量的代码如下所示:

ints;//声明整型变量

floatmyfloat;//声明浮点型变量

上述代码声明了一个整型的变量s,同时也声明了一个单精度浮点型变量myfloat。

2.2.2值类型

这种类型的对象总是直接通过其值使用,不需要对它进行引用。

基于值类型的变量直接包含值。

并且,所有的C#局部变量都需要初始化后才可以使用,值类型同样如此,初始化代码如下所示。

ints;//声明整型变量

s=newint();//声明整型变量

s=3;//初始化变量

上式等同于如下代码。

ints;//声明整型变量

s=3;//初始化变量

所有的值类型均隐式的派生自System.ValueType,并且值类型不能派生出新的类。

值的类型不能为null,但是可空类型允许将null值赋给值类型,在上面的代码中,程序通过默认的构造函数给为变量s初始化并赋值。

2.2.3引用类型

引用类型的变量又称为对象,是可存储对实际数据的引用。

常见的引用类型有class、interface、delegate、object和string。

多个引用变量可以附加于一个对象,而且某些引用可以不附加于任何对象,如果声明了一个引用类型的变量却不给他赋给任何对象,那么它的默认值就是null。

相比之下,值类型的值不能为null。

2.3变量规则

声明变量并不是随意声明的,变量的声明有自己的规则。

在C#中,应用程序包含许多关键字,包括int等是不能够声明为变量名的,如intint是不允许的,在进行变量的声明和定义时,需要注意变量名称是否与现有的关键字重名。

2.3.1命名规则和命名习惯

命名规则就是给变量取名的一种规则,一般来说,命名规则就是为了让开发人员给变量或者命名空间取个好名,不仅要好记,还要说明一些特性。

在C#里面,有常用的一些命名的习惯如下。

❑Pascal大小写形式:

所有单词的第一个字母大写,其他字母小写。

❑Camel大小写形式:

除了第一个单词,所有单词的第一个字母大写,其他字母小写。

当然,在其他编程中,不同的开发人员可能遇到了一些不一样的命名规则和命名习惯,但是在C#中,推荐使用常用的一些命名习惯,这样能保证代码的优雅性和可读性。

同时,也应该避免使用相同名称的命名空间或与系统命名相同的变量,如以下代码所示:

stringint;//系统会提示出错

运行上述代码时系统会提示错误,因为字符串“int”是一个关键字,当使用关键字做变量名时,编译器会混淆该变量是变量还是关键字,所以系统会提示错误。

所以,在变量声明时应该避免变量名称与关键字重名,如果变量名称与关键字重名,编译器就会报错,C#中常用的关键字如表2-2所示:

表2-2不应使用的关键字名称

AddHandler

AddressOf

Alias

And

Ansi

As

Assembly

Auto

BitAnd

BitNot

BitOr

BitXor

Boolean

ByRef

Byte

ByVal

Call

Case

Catch

CBool

CByte

CChar

CDate

CDec

CDbl

Char

CInt

Class

CLng

CObj

Const

CShort

CSng

CStr

CType

Date

Decimal

Declare

Default

Delegate

Dim

Do

Double

Each

Else

ElseIf

End

Enum

Erase

Error

Event

Exit

ExternalSource

False

Finally

For

Friend

Function

Get

GetType

Goto

Handles

If

Implements

Imports

In

Inherits

Integer

Interface

Is

Let

Lib

Like

Long

Loop

Me

Mod

Module

MustInherit

MustOverride

MyClass

Namespace

MyBase

New

Next

Not

Nothing

NotInheritable

NotOverridable

Object

On

Option

Optional

Or

Overloads

Overridable

Overrides

ParamArray

Preserve

Private

Property

Protected

Public

RaiseEvent

ReadOnly

ReDim

Region

REM

RemoveHandler

Resume

Return

Select

Set

Shadows

Shared

Short

Single

Static

Step

Stop

String

Structure

Sub

SyncLock

Then

Throw

To

True

Try

TypeOf

Unicode

Until

Variant

When

While

With

WithEvents

WriteOnly

Xor

eval

extends

instanceof

package

var

注意:

标识符、参数名、函数名都不需要使用缩写。

如果要使用缩写,超过两个字符以上的缩写都应该使用Camel大写格式。

2.3.2声明并初始化变量

在程序代码编写中,需要大量的使用变量和读取变量的值,所以需要声明一个变量来表示一个值。

这个变量可能描述是一个人的年龄,也可能是一辆车的颜色。

在声明了一个变量之后,就必须给这个变量一个值,只有在给变量值之后能够说明这个变量被初始化。

1.语法

声明变量的语法非常简单,即在数据类型之后编写变量名,如一个人的年龄(age)和一辆车的颜色(color),声明代码如下所示。

intage;//声明一个叫age的整型变量,代表年龄

stringcolor;//声明一个叫color的字符串变量,代表颜色

上述代码声明了一个整型变量age和一个字符串型变量color,由于年龄的值不会小于0也不会大于100,所以在声明时可以使用数字类型进行声明。

2.初始化变量

变量在声明后还需要初始化,例如“我年龄21岁,很年轻,我想买一辆红色的车”,那么就需要对相应的变量进行初始化,示例代码如下所示。

intage;//声明一个叫age的整型变量,代表年龄

stringcolor;//声明一个叫color的字符串变量,代表颜色

age=21;//声明始化,年龄21岁

color="red";//声明始化,车的颜色为红色

上述代码也可以合并为一个步骤简化编程开发,示例代码如下所示。

intage=1;//声明并初始化一个叫age的整型变量,代表年龄

stringcolor="red";//声明初始化

3.赋值

在声明了一个变量之后,就可以给这个变量赋值了,但是当编写以下代码就会出错,示例代码如下。

floata=1.1;//错误的声明浮点类型变量

当运行了以上代码后会提示错误信息:

不能隐式地将Double类型转换为“float”类型;请使用“F”后缀创建此类型。

从错误中可以看出,将变量后缀增加一个“F”即可,示例代码如下所示。

floata=1.1F;//正确的声明浮点类型变量

运行程序,程序就能够编译并运行了。

这是因为若无其他指定,C#编译器将默认所有带小数点的数字都是Double类型,如果要声明成其他类型,可以通过后缀来指定数据类型,如表2-3将展示一些可用的后缀,并且后缀可用小写。

表2-3可用的后缀表

后缀

描述

U

无符号

L

长整型

UL

无符号长整型

F

浮点型

D

双精度浮点型

M

十进制

L

长整型

4.转义字符

在开发过程当中,如果需要将单引号或者双引号输出,或将单引号等字符作为字符串输出,就会发现在字符串中单引号或者双引号等字符是不能直接进行输出呈现。

为了解决这一问题,于是引入了转义字符,常用的转义字符表如表2-4所示。

表2-4转义字符表

换码序列

字符名称

\’

单引号

\”

双引号

\\

反斜杠

\0

空字符

\a

警报符

\b

退格

\f

换页

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

若在应用程序开发过程中,需要在程序里的字符串中编写一个双引号并进行输出,可以使用转义字符进行输出,示例代码如下所示。

stringstr=”thisis\””;//使用转义字符

6.设置断点

在VisualStudio.NET开发环境中,为用户提供了在开发应用程序时查看变量值的工具,只需要在查看的变量上设置断点,以调试模式运行应用程序,就可以在调试窗口中查看变量的值。

在代码编辑窗口单机左边的空白处可直接设置断点。

断点以红色圆点标识。

也可以在调试菜单中单击【切换断点】按钮,或使用快捷键【F9】键来设置断点,如图2-2所示。

图2-2设置断点

按下【F5】键或在菜单栏中的调试菜单中单击【启动调试】按钮都可以运行程序。

当程序开始运行,程序从Main入口运行并直至遇到断点,遇到断点后程序将停止运行,如图2-3所示。

同时开发环境会高亮显示下一条即将执行的代码,同时调试查看窗口会显示,并呈现变量的当前值,如图2-4所示,。

图2-3运行到断点,提示下一步执行的代码图2-4显示当前值

在调试完成后,可以通过快捷键【Shift+F5】停止调试,也可以在菜单栏中的【调试】菜单里的【停止调试】选项中停止应用程序的调试。

如果需要继续执行,可以按下【F5】键或在调试菜单中选择【继续执行到下一个断点】选项进行执行。

开发人员还可以通过使用快捷键【F10】,或在调试菜单中选择【逐过程】或【逐语句】每次只执行一条语句,方便对代码中变量变化的查看。

2.3.3数组

数组是一个引用类型,开发人员能够声明数组并初始化数据进行相应的数组操作,数组是一种常用的数据存放方式。

1.数组的声明

数组的声明方法是在数据类型和变量名之间插入一组方括号,声明格式如下所示。

string[]groups;//声明数组

以上语句声明了一个变量名为groups的数组,其数据类型为string。

声明了一个数组之后,并没有为此数组添加内容初始化,需要对数组初始化,才能使用数组。

2.数组的初始化

开发人员可以对数组进行显式的初始化,以便能够填充数组中的数据,初始化代码如下所示。

string[]groups={"","c#","control","mvc","wcf","wpf","linq"};//初始化数组

值得注意的是,与平常的逻辑不同的是,数组的开始并不是1,而是0。

以上初始化了groups数组,所以groups[0]的值应该是“”而不是“c#”,相比之下,group[1]的值才应该是“c#”。

3..NET中数组的常用的属性和方法

在.NET中,.NET框架为开发人员提供了方便的方法来对数组进行运算,专注于逻辑处理的开发人员不需要手动实现对数组的操作。

这些常用的方法如下所示。

❑Length方法用来获取数组中元素的个数。

❑Reverse方法用来反转数组中的元素,可以针对整个数组,或数组的一部分进行操作。

❑Clone方法用来复制一个数组。

对于数组的操作,可以使用相应的方法进行数据的遍历、查询和反转,示例代码如下所示。

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;//声明文本命名空间

namespacemyArray//主应用程序类

{

classProgram

{

staticvoidMain(string[]args)

{

string[]groups={"","c#","control","mvc","wcf","wpf","linq"};//初始化一个数组

intcount=groups.Length;//获取数组的长度

Console.WriteLine("------------------------数组长度--------------------------");

Console.WriteLine(count.ToString());//输出数组的长度

Cons

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

当前位置:首页 > 高中教育 > 语文

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

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