第2章C# 30程序设计基础(ASPNET 35开发大全 共29章).pdf
《第2章C# 30程序设计基础(ASPNET 35开发大全 共29章).pdf》由会员分享,可在线阅读,更多相关《第2章C# 30程序设计基础(ASPNET 35开发大全 共29章).pdf(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第 2 章 C#3.0 程序设计基础 在第一章里,了解了 ASP.NET 3.5 的特性和一些基本的.NET Framework 知识,不过如果要深入到ASP.NET 3.5 应用程序开发,需要对开发语言有更加深入的了解。而在.NET 平台上,微软主推的编程语言就是 C#,本章将会从 C#的语法、结构和特性来讲解,以便读者能够深入的了解 C#程序设计。2.1 C#程序 C#程序有自己的程序结构。C#编程语言类似 C+/Java 等面向对象编程语言,同样需要编写类、创建对象等。但是 C#依旧有与其他面向对象编程语言不同的特性,使用这些特性能够快速的正确的编写C#宿主语言的应用程序,如 ASP.
2、NET、WinForm 等。2.1.1 C#程序的结构 在开始学习和编写 C#代码之前,首先应该了解 C#编程语言的结构,下列代码说明了 C#应用程序的基本结构。using System;using System.Collections.Generic;using System.Linq;using System.Text;/使用命名空间 namespace mycsharp /程序代码命名空间 class Program /应用程序主类 static void Main(string args)/入口方法 Console.WriteLine(Hello World);/输出 Hello Wo
3、rld Console.ReadKey();/等待用户输入 其中,using 关键字的用途是引用微软的.NET 框架中现有的类库资源,该关键字出现在应用程序代码的开头,并使用在 cs 为后缀的文件中使用。using 关键字通常情况下会出现几次,其目的是引用类库中的各种资源,这些资源不仅包括代码中的 System,System.Collections.Generic,Linq,还包括其他.NET 框架的资源。System 命名空间提供了构建应用程序所需的各种系统功能,例如 LINQ 的类库包括了构建 LINQ 应用程序的各种类库资源。.NET 中提供大量的命名空间,以便开发人员能够使用现有的类库
4、进行应用程序的开发。同时,在代码中也可以看到在其中包含一个 mycsharp 的一个命名空间,示例代码如 namespace mycsharp。在当前程序中声明该命名空间,可以在其他的程序中引用这个命名空间,并使用此命名空间下的类和方法。21 另外,Program 是一个类名。在 C#或其他的任何面向对象语言中(如 JAVA、C+)都需要编写类,类用于创建对象。在上述代码中,Program 是一个类的名称。方法是用于描述类的行为。在上述示例第 9 行中,static void Main 是一个全局静态方法,它指示编译器从此处开始执行程序,相当于程序的入口,程序运行的时候会执行 Main 方法作
5、为入口。在 C#Windows 编程中,大部分的应用程序必须在其组成程序的其中一个类中包含 Main 方法。语句就是在 C#应用程序中包含的指令,通过使用分号进行分割,编译器通过分号来区分它们。一些编程语言只允许一行放置一条语句,但是 C#允许放置多个语句,也可以将一个语句拆分成多行。虽然 C#编译器支持这样的特性,但是还是推荐使用一行放置一个语句的,这样不仅提高了可读性,也便于书写。括号“”和“”用来标识程序中代码的范围,如上述代码中 Main 方法囊括了 Main 方法的语句,Program 类囊括了类的方法,而 namespace mycsharp 命名空间囊括了此命名空间里的所有类。值
6、得注意的是,Visual Studio 2008 为开发人员在编写程序的时候提供了诸多的智能提示,在完成一个类或一个变量时,系统会自动补全,而当鼠标放到一个大括号上的时候,编译器会指示开发人员此括号的范围,如图 2-1 所示。图 2-1 外围元素被标记 注意:在一个类内的所有方法都是独立的方法,所以每个大括号后面都不需要分号,同样对于命名空间里的所有类也是一样。2.1.2 C#IDE 的代码设置 代码格式也是程序设计中一个非常重要的组成环节,他可以帮助用户组织代码和改进代码,也让代码具有可读性。具有良好可读性的代码能够让更多的开发人员更加轻松的了解和认知代码。按照约定的格式书写代码是一个非常良
7、好的习惯,下面的代码示例说明了应用缩进、大小写敏感、空白区和注释等格式的原则。using System;using System.Collections.Generic;using System.Linq;/使用 LINQ 命名空间 using System.Text;namespace mycsharp /声明命名空间 class Program /主程序类 22 static void Main(string args)/静态方法 Console.WriteLine(Hello World);/这里输出 Hello World Console.WriteLine(按任意键退出.);Cons
8、ole.ReadKey();/这里让用户按键后退出,保持等待状态 1缩进缩进 缩进可以帮助开发人员阅读代码,同样能够给开发人员带来层次感。读者可以从以上代码看出这一串代码让人能够很好的分辨区域,非常方便的就能找到 Main 方法的代码区域,这是因为括号都是有层次的。缩进让代码保持优雅,同一语句块中的语句应该缩进到同一层次,这是一个非常重要的约定,因为它直接影响到代码的可读性。虽然缩进不是必须的,同样也没有编译器强制,但是为了在不同人员的开发中能够进行良好的协调,这是一个值得去遵守的约定。2大小写敏感大小写敏感 C#是一种对大小写敏感的编程语言。可能 php 等其他语言的开发人员不太适应大小写敏
9、感,但是在C#中,其语法规则的确是对字符串中字母的大小写敏感的,例如“C Sharp”、“c Sharp”、“c sHaRp”都是不同的字符串,在编程中应当注意。3空白空白 C#编译器会忽略到空白。使用空白能够改善代码的格式,提高代码的可读性。但是值得注意的是,编译器不对引号内的任何空白做忽略,在引号内的空格作为字符串存在。4注释注释 在 C/C+里,编译器支持开发人员编写注释,以便开发人员能够方便的阅读代码。当然,在 C#里也一样继承了这个良好的习惯。之所以这里说的是习惯,是因为编写注释同缩进一样,没有人强迫要编写注释,但是良好的注释习惯能够让代码更加优雅和可读,谁也不希望自己的代码在某一天
10、过后自己也不认识了。注释的写法是以符号“/*”开始,并以符号“*/”结束,这样能够让开发人员更加轻松的了解代码的作用,同时,也可以使用符号“/”双斜线来写注释,但是这样的注释是单行的,示例代码如下所示。/*多行注释 *本例演示了在程序中写注释的方法 在注释内也可以不要开头的*号 */单行注释,一般对单个语句进行注释 5布局风格布局风格 class Program static void Main(string args)Console.WriteLine(Hello World);/这里输出 Hello World Console.WriteLine(按任意键退出.);Console.Read
11、Key();/这里让用户按键后退出,保持等待状态 23 从以上代码可以看出,程序中使用了缩进、大小写敏感,空白区和注释等,但是这个代码风格依旧不是最好,可以修改代码让代码更加“好看”。这里能够将代码进行修正,修正后的示例代码如下所示。class Program static void Main(string args)Console.WriteLine(Hello World);/这里输出 Hello World Console.WriteLine(按任意键退出.);Console.ReadKey();/这里让用户按键后退出,保持等待状态 这种布局风格让开发人员感觉到耳目一新,这样更能方便更多
12、的开发人员阅读源代码。如果打开一千行或更多代码量的源文件时,其编码格式都是标准的风格的话,不管是谁再接手去阅读,都能尽快上手。不仅如此,在软件开发当中,应该规定好每个人都使用同样的布局风格,让团队能够协调运作。2.2 变量 在任何编程语言中,无论是传统的面向过程还是面向对象都必须使用变量。因此,变量都有自己的数据类型,在使用变量的时候,必须使用相同的数据类型进行运算。在程序的运行中,计算中临时存储的数据都必须用到变量,变量的值也会放置在内存当中,由计算机运算后再保存到变量中,由此可见,变量在任何的应用程序开发中都是非常基础也是非常重要的。同样,在 C#中也需要变量对数据进行存储,本节将会介绍
13、C#的基本语法、数据类型、变量、枚举等。2.2.1 定义 要声明一个变量就需要为这个变量找到一个数据类型,在 C#中,数据类型由.NET Framework 和 C#语言来决定,表 2-1 列举了一些预定义的数据类型。表 2-1 预定义数据类型 预定义类型 定义 字节数 byte 0255之间的整数 1 sbyte-128127之间的整数 1 short-3276832767之间的整数 2 ushort 065535之间的整数 2 int-21474836482147483647之间的整数 4 uint 04294967259之间的整数 4 long-922337203685477580892
14、23372036854775807之间的整数 8 ulong 018445744073709551615之间的整数 8 bool 布尔值,true of false 1 float 单精度浮点值 4 double 双精度浮点值 8 decimal 精确的十进制值,有28个有效单位 12 object 其他所有类型的基类 N/A char 065535之间的单个Unicode字符 2 string 任意长度的Unicode字符序列 N/A 24 一个简单的声明变量的代码如下所示:int s;/声明整型变量 float myfloat;/声明浮点型变量 上述代码声明了一个整型的变量 s,同时也声明
15、了一个单精度浮点型变量 myfloat。2.2.2 值类型 这种类型的对象总是直接通过其值使用,不需要对它进行引用。基于值类型的变量直接包含值。并且,所有的 C#局部变量都需要初始化后才可以使用,值类型同样如此,初始化代码如下所示。int s;/声明整型变量 s=new int();/声明整型变量 s=3;/初始化变量 上式等同于如下代码。int s;/声明整型变量 s=3;/初始化变量 所有的值类型均隐式的派生自 System.ValueType,并且值类型不能派生出新的类。值的类型不能为null,但是可空类型允许将 null 值赋给值类型,在上面的代码中,程序通过默认的构造函数给为变量 s
16、初始化并赋值。2.2.3 引用类型 引用类型的变量又称为对象,是可存储对实际数据的引用。常见的引用类型有 class、interface、delegate、object 和 string。多个引用变量可以附加于一个对象,而且某些引用可以不附加于任何对象,如果声明了一个引用类型的变量却不给他赋给任何对象,那么它的默认值就是 null。相比之下,值类型的值不能为 null。2.3 变量规则 声明变量并不是随意声明的,变量的声明有自己的规则。在 C#中,应用程序包含许多关键字,包括 int 等是不能够声明为变量名的,如 int int 是不允许的,在进行变量的声明和定义时,需要注意变量名称是否与现有
17、的关键字重名。2.3.1 命名规则和命名习惯 命名规则就是给变量取名的一种规则,一般来说,命名规则就是为了让开发人员给变量或者命名空间取个好名,不仅要好记,还要说明一些特性。在 C#里面,有常用的一些命名的习惯如下。Pascal 大小写形式:所有单词的第一个字母大写,其他字母小写。Camel 大小写形式:除了第一个单词,所有单词的第一个字母大写,其他字母小写。当然,在其他编程中,不同的开发人员可能遇到了一些不一样的命名规则和命名习惯,但是在 C#中,推荐使用常用的一些命名习惯,这样能保证代码的优雅性和可读性。同时,也应该避免使用相同名称的命名空间或与系统命名相同的变量,如以下代码所示:stri
18、ng int;/系统会提示出错 25 运行上述代码时系统会提示错误,因为字符串“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 C
19、Byte 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 I
20、nterface 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 RE
21、M 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 大
22、写格式。2.3.2 声明并初始化变量 在程序代码编写中,需要大量的使用变量和读取变量的值,所以需要声明一个变量来表示一个值。这个变量可能描述是一个人的年龄,也可能是一辆车的颜色。在声明了一个变量之后,就必须给这个变量一个值,只有在给变量值之后能够说明这个变量被初始化。1语法语法 声明变量的语法非常简单,即在数据类型之后编写变量名,如一个人的年龄(age)和一辆车的颜色(color),声明代码如下所示。int age;/声明一个叫 age 的整型变量,代表年龄 string color;/声明一个叫 color 的字符串变量,代表颜色 上述代码声明了一个整型变量 age 和一个字符串型变量 co
23、lor,由于年龄的值不会小于 0 也不会大于100,所以在声明时可以使用数字类型进行声明。2初始化变量初始化变量 变量在声明后还需要初始化,例如“我年龄 21 岁,很年轻,我想买一辆红色的车”,那么就需要对相应的变量进行初始化,示例代码如下所示。26 int age;/声明一个叫 age 的整型变量,代表年龄 string color;/声明一个叫 color 的字符串变量,代表颜色 age=21;/声明始化,年龄 21 岁 color=red;/声明始化,车的颜色为红色 上述代码也可以合并为一个步骤简化编程开发,示例代码如下所示。int age=1;/声明并初始化一个叫 age 的整型变量,
24、代表年龄 string color=red;/声明初始化 3赋值赋值 在声明了一个变量之后,就可以给这个变量赋值了,但是当编写以下代码就会出错,示例代码如下。float a=1.1;/错误的声明浮点类型变量 当运行了以上代码后会提示错误信息:不能隐式地将 Double 类型转换为“float”类型;请使用“F”后缀创建此类型。从错误中可以看出,将变量后缀增加一个“F”即可,示例代码如下所示。float a=1.1F;/正确的声明浮点类型变量 运行程序,程序就能够编译并运行了。这是因为若无其他指定,C#编译器将默认所有带小数点的数字都是 Double 类型,如果要声明成其他类型,可以通过后缀来指
25、定数据类型,如表 2-3 将展示一些可用的后缀,并且后缀可用小写。表 2-3 可用的后缀表 后缀 描述 U 无符号 L 长整型 UL 无符号长整型 F 浮点型 D 双精度浮点型 M 十进制 L 长整型 4转义字符转义字符 在开发过程当中,如果需要将单引号或者双引号输出,或将单引号等字符作为字符串输出,就会发现在字符串中单引号或者双引号等字符是不能直接进行输出呈现。为了解决这一问题,于是引入了转义字符,常用的转义字符表如表 2-4 所示。表 2-4 转义字符表 换码序列 字符名称 单引号”双引号 反斜杠 0 空字符 a 警报符 b 退格 f 换页 n 换行 r 回车 t 水平制表符 v 垂直制表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章C# 30程序设计基础ASPNET 35开发大全 共29章 C# 30 程序设计 基础 ASPNET 35 开发 大全 29
限制150内