当前位置:首页 > 工业技术
C#程序设计与应用
C#程序设计与应用

C#程序设计与应用PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:刘亚秋等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2002
  • ISBN:7505378295
  • 页数:476 页
图书介绍:本书主要介绍如何使用VisualC#.NET开发ASP.NETWeb应用程序,不仅介绍了基础知识,比如如何开发最基本的ASP.NETWeb应用程序、构成ASP.NETWeb应用程序的各个文件的功能与含义,以及ASP.NET服务器控件的使用等,还介绍了比较深入的知识和开发技术,比如自定义Web控件的创建、三层体系结构的设计思想,以及基于角色的用户管理系统等。本书的主要特点是通过典型、实用的示例来介绍开发ASP.NETWeb应用程序所需的各种技术知识。本书中的所有示例都从实际的开发项目中选取的,这些示例包括常用的控件、采用三层体系结构开发的网站、功能完善的基于角色的用户管理系统,以及具有完整功能的安装程序等。本书主要面向初中级读者,包括VisualC#.NET和ASP.NET的初学者和具有一定经验的开发人员。[编辑推荐]丛书特色:精选著名流行软件,紧跟版本更新,连续推出配套图书。由入门起步,注重提高,使新手老手都能成为行家里手。根据用户实际使用的需要取材谋篇,着重技术精华的剖析和操作技巧的指点。晰晰精练的风格,醒目的步骤提示和生动的屏幕画面使您如临操作现场。通过本书学习以下知识:ASP.N
《C#程序设计与应用》目录

第1章 Microsoft.NET综述 1

1.1 概述 1

1.2.2 ADO.NET 2

1.2.1 公共语言运行时和基础类库 2

1.2 Microsoft.NET开发框架 2

1.2.3 ASP.NET 3

1.2.6 与COM的关系 4

1.2.5 .NET中的编程语言和开发工具 4

1.2.4 Windows应用 4

1.2.7 .NET框架的核心要素 5

1.5 .NET几大热点问题 6

1.4 .NET框架的优点 6

1.3 .NET的核心组件 6

习题 9

1.6 小结 9

2.1 C#语言概述 11

第2章 C#简介 11

2.1.1 C++和C#的比较 13

2.1.2 C#和Java 14

2.2.1 简单 16

2.2 C#语言的特点 16

2.2.4 类型安全 17

2.2.3 面向对象 17

2.2.2 现代 17

2.2.7 灵活 18

2.2.6 兼容 18

2.2.5 版本可控 18

习题 19

2.4 小结 19

2.3 C#的弱点 19

3.1.1 安装准备工作 21

3.1 构建开发环境 21

第3章 C#初步 21

3.1.2 开始安装 22

3.2.1 选择编写C#代码的工具 25

3.2 开发工具的使用 25

实例3-1 第一个C#程序 27

3.2.2 第一个C#程序 27

3.2.4 名字空间 29

3.2.3 注释 29

3.2.6 Main方法 30

3.2.5 类 30

3.2.8 编译和执行 31

实例3-2 C#的控制台输入与输出 31

3.2.7 输入和输出 31

3.2.9 调试 34

3.4 应用程序的组织 35

3.3 C#程序的一般结构 35

3.4.1 名字空间 36

3.4.3 使用动态链接库 37

3.4.2 动态链接库的建立 37

习题 38

3.5 小结 38

4.1 值类型 39

第4章 数据类型 39

4.1.1 bool类型 40

实例4-1 读键盘字符测试 41

4.1.2 char类型 42

4.1.3 byte类型 43

4.1.4 sbyte类型 44

4.1.5 short类型 45

4.1.6 ushort类型 46

4.1.7 int类型 47

4.1.9 long类型 48

4.1.8 uint类型 48

4.1.10 ulong类型 50

实例4-2 多种类型混合运算 51

4.1.11 float类型 51

实例4-3 在表达式中混合多种类型 52

4.1.12 double类型 52

4.1.13 decimal类型 53

实例4-5 decimal类型的格式化 54

实例4-4 decimal转换 54

实例4-6 枚举初始化 55

4.1.14 enum类型 55

4.1.15 struct类型 56

实例4-7 使用long作为枚举成员的类型 56

实例4-8 struct声明和初始化 57

实例4-9 不使用new声明结构对象 58

4.2.1 class类型 59

4.2 引用类型 59

实例4-10 类的示例 60

实例4-11 通过代表调用静态和实例方法 62

4.2.2 delegate类型 62

实例4-12 代表元使用 63

实例4-13 复合代表 66

4.2.3 interface类型 67

实例4-14 接口的实现 68

实例4-15 显式实现接口1 70

实例4-16 显式实现接口2 71

实例4-17 objeet类型使用 73

4.2.4 object类型 73

4.2.5 string类型 74

实例4-19 string类型常用操作 75

实例4-18 string类型使用 75

4.3.1 内建类型表 76

4.3 类型参考表 76

4.3.2 整数类型表 77

4.3.5 值类型表 78

4.3.4 默认值表 78

4.3.3 浮点类型表 78

4.3.7 显式数字转换表 79

4.3.6 隐式数字转换表 79

习题 80

4.4 小结 80

5.1.2 关键字 83

5.1.1 标识符 83

第5章 变量和常量 83

5.1 标识符和关键字 83

5.2.1 变量命名 84

5.2 变量 84

5.2.2 变量的类型 85

5.3 常量 86

5.4.1 命名变量、方法以及属性 87

5.4 .NET命名规则 87

5.4.3 匈牙利命名法 88

5.4.2 命名组件以及集合 88

习题 89

5.5 小结 89

6.1.1 装箱概述 91

6.1 装箱转换 91

第6章 装箱和拆箱转换 91

6.1.3 装箱转换实例 92

6.1.2 装箱转换 92

6.2.1 拆箱概述 93

6.2 拆箱转换 93

实例6-1 装箱转换 93

实例6-2 错误的拆箱操作引起异常 94

6.2.3 拆箱转换实例 94

6.2.2 拆箱转换 94

习题 95

6.3 小结 95

7.1 数组的基本概念 97

第7章 数组 97

7.2.1 一维数组的声明 98

7.2 数组声明 98

7.2.3 锯齿数组的声明 99

7.2.2 多维数组的声明 99

7.3 数组初始化 100

实例7-1 定义数组 100

7.3.2 数组初始化 101

7.3.1 创建数组空间 101

7.4.2 使用foreach-in语句循环访问数组 103

7.4.1 使用普通方法访问数组成员 103

7.4 访问数组成员 103

实例7-2 利用二维数组实现矩阵相乘 104

7.4.3 访问数组成员的综合应用 104

7.6 传递数组参数 105

7.5 数组是对象 105

实例7-4 数组的数组 106

实例7-3 一维数组传递 106

7.6.1 传递一维数组参数 106

实例7-5 二维数组传递 107

7.6.2 传递多维数组参数 107

实例7-6 使用out把数组传递给方法 108

7.6.3 使用ref和out传递数组 108

实例7-7 使用ref把数组传递给方法 109

习题 110

7.7 小结 110

8.1.1 if-else条件语句 113

8.1 选择语句 113

第8章 流程控制 113

实例8-1 使用if条件控制语句确定字符的形态 115

8.1.2 switch-case语句 116

实例8-2 变量为整型的switch语句 117

8.1.3 C#和C/C++中switch语句的差别 118

实例8-3 变量为字符的switch语句 118

实例8-6 实例8-4修改后的合法表示 119

实例8-5 C#中合法的switch语句 119

实例8-4 C#中非法的switch语句 119

8.2.1 for循环 120

8.2 循环语句 120

实例8-8 for循环的多层嵌套 121

实例8-7 使用for循环计算阶乘 121

实例8-9 选择排序 122

8.2.3 do-while循环 123

实例8-10 使用StreamReader类输出C#源文件到屏幕 123

8.2.2 while循环 123

实例8-11 do-while循环使用 124

实例8-12 用foreach扫描整个列表并打印所有元素 125

8.3.2 使用foreach语句遍历数据列表 125

8.3 foreach语句 125

8.3.1 foreach语句的语法规则 125

实例8-13 使用foreach语句读取所有的环境变量 126

8.3.3 使用foreach语句读取所有环境变量 126

8.3.5 对集合使用foreach语句 127

实例8-14 对数组使用foreach语句 127

8.3.4 foreach语句应用于数组 127

实例8-15 对C#语言集合使用foreach语句 128

实例8-16 对通用集合使用foreach语句 129

实例8-17 使用Hashtable集合类 131

实例8-18 break语句使用 132

8.4.1 break语句 132

8.4 跳出、继续和转向语句 132

实例8-19 continue语句使用 133

8.4.2 continue语句 133

实例8-20 goto语句使用 134

8.4.3 goto语句 134

实例8-21 return语句使用 135

8.4.4 return语句 135

实例8-22 自动内存管理 136

8.5 C#内存管理控制综合实例 136

习题 138

8.6 小结 138

9.1 类的声明 143

第9章 类 143

实例9-1 class类型使用 144

实例9-2 类成员访问修饰符的用法 145

9.2.1 对类成员的访问 145

9.2 类的成员 145

实例9-3 this关键字 146

9.2.2 this关键字 146

9.2.3 静态成员和非静态成员 147

9.2.4 成员常量 148

9.3.1 构造函数 149

9.3 构造函数和析构函数 149

实例9-4 带参数的构造函数 150

9.3.2 构造函数的参数 150

9.4 类的方法 152

9.3.3 析构函数 152

实例9-5 通过值传递参数 153

9.4.1 方法参数 153

实例9-7 定义一个输出参数 154

实例9-6 通过引用传递参数 154

实例9-8 数组型参数 155

实例9-9 改写一个基类的方法 156

9.4.2 方法改写 156

实例9-10 调用基类实现 157

实例9-12 派生类实现基类中相同的方法 158

实例9-11 派生类屏蔽基类方法 158

9.4.3 方法屏蔽 158

9.4.4 类的属性 159

实例9-13 派出类覆盖基类方法 159

9.5 事件处理 160

实例9-14 实现属性存取标志 160

实例9-15 在类中实现事件处理 161

9.6 索引指示器 162

实例9-16 通过一个索引获取一个IP地址 163

实例9-17 抽象类和密封类 164

9.7.1 类修饰符 164

9.7 使用修饰符 164

9.7.3 存取修饰符 165

9.7.2 成员修饰符 165

实例9-18 存取修饰符的使用 166

习题 167

9.8 小结 167

10.1 域 171

第10章 域和属性 171

实例10-1 静态域和非静态域 172

10.1.1 静态域和非静态域 172

10.1.2 域的初始化 173

10.2.1 属性的声明 174

10.2 属性 174

实例10-2 属性使用 175

10.3 访问器 176

10.3.1 语法规则 177

实例10-3 隐藏属性 178

10.3.3 隐藏属性实例 178

10.3.2 说明 178

实例10-4 正方形和立方体的面积与边长求解 180

10.3.4 覆盖属性实例 180

10.4.2 说明 182

10.4.1 语法规则 182

10.4 接口属性 182

实例10-5 接口属性应用 183

10.4.3 实例 183

实例10-6 声明和使用可读可写属性 185

10.5.1 声明和使用可读可写属性实例 185

10.5 应用实例 185

实例10-7 abstractshape.cs程序 187

10.5.2 定义抽象属性实例 187

实例10-8 shapes.cs程序 188

实例10-9 shapetest.cs程序 189

习题 190

10.6 小结 190

11.1 方法的声明 193

第11章 方法 193

11.2 Main方法 194

实例11-1 return语句使用 194

实例11-2 计算输入值的阶乘 195

11.2.1 返回值 195

实例11-3 使用参数 196

11.2.2 命令行参数 196

实例11-4 获到主机IP地址 197

11.2.3 获得主机IP地址实例 197

习题 199

11.3 小结 199

12.1.1 操作符分类 201

12.1 操作符概述 201

第12章 操作符 201

12.2.1 []操作符 202

12.2 操作符说明 202

12.1.2 算术溢出 202

12.2.2 ()操作符 203

12.2.3 .操作符 204

实例12-1 double强制转换成int 204

实例12-3 一元-操作符和二元-操作符 205

12.2.5 -操作符 205

12.2.4 +操作符 205

实例12-2 +操作符的多种用法 205

12.2.7 /操作符 206

实例12-4 *操作符应用 206

12.2.6 *操作符 206

实例12-6 %操作符应用 207

12.2.8 %操作符 207

实例12-5 /操作符应用 207

实例12-8 |操作符应用 208

12.2.10 |操作符 208

12.2.9 &操作符 208

实例12-7 &操作符应用 208

实例12-10 =操作符应用 209

12.2.12 =操作符 209

12.2.11 ~操作符 209

实例12-9 ~操作符应用 209

实例12-12 ^操作符应用 210

12.2.14 ^操作符 210

12.2.13 <操作符 210

实例12-11 <操作符应用 210

实例12-14 >操作符应用 211

12.2.16 >操作符 211

12.2.15 !操作符 211

实例12-13 !操作符应用 211

实例12-15 ?:操作符应用 212

12.2.17 ?:操作符 212

实例12-16 ++操作符应用 213

12.2.18 ++操作符 213

12.2.20 &&操作符 214

实例12-17 --操作符应用 214

12.2.19 --操作符 214

12.2.21 ||操作符 215

实例12-18 &&操作符应用 215

12.2.22 <<操作符 216

实例12-19 ||操作符应用 216

12.2.23 >>操作符 217

实例12-20 <<操作符应用 217

实例12-22 ==操作符应用 218

12.2.24 ==操作符 218

实例12-21 >>操作符应用 218

实例12-23 !=操作符应用 219

12.2.25 !=操作符 219

12.2.27 >=操作符 220

实例12-24 <=操作符应用 220

12.2.26 <=操作符 220

12.2.29 -=操作符 221

实例12-26 +=操作符应用 221

实例12-25 >=操作符应用 221

12.2.28 +=操作符 221

12.2.31 /=操作符 222

实例12-28 *=操作符应用 222

实例12-27 -=操作符应用 222

12.2.30 *=操作符 222

12.2.33 &=操作符 223

实例12-30 %=操作符应用 223

实例12-29 /=操作符应用 223

12.2.32 %=操作符 223

实例12-32 |=操作符应用 224

12.2.34 |=操作符 224

实例12-31 &=操作符应用 224

实例12-34 <<=操作符应用 225

12.2.36 <<=操作符 225

12.2.35 ^=操作符 225

实例12-33 ^=操作符应用 225

实例12-36 ->操作符应用 226

12.2.38 ->操作符 226

12.2.37 >>=操作符 226

实例12-35 >>=操作符应用 226

12.3.2 操作符重载实例 227

12.3.1 可重载操作符 227

12.3 操作符重载 227

实例12-37 复数类型重载 228

实例12-38 重载三值逻辑类型的操作符 229

12.4 操作符关键词 232

实例12-39 as操作符应用 233

12.4.1 as关键词 233

实例12-40 is操作符应用 234

12.4.2 is操作符 234

12.4.4 new操作符 236

实例12-41 false关键词应用 236

12.4.3 false关键词 236

实例12-42 new操作符应用 237

12.4.5 new修饰符 238

实例12-43 new修饰符应用 239

12.4.6 sizeof操作符 240

实例12-44 对嵌套类型使用new修饰符 240

实例12-46 typeof关键词应用 241

12.4.7 typeof关键词 241

实例12-45 sizeof操作符应用 241

实例12-48 true关键词应用 243

12.4.8 true关键词 243

实例12-47 使用GetType方法 243

实例12-49 stackalloc关键词应用 244

12.4.9 stackalloc关键词 244

习题 245

12.5 小结 245

13.1 修饰符分类 247

第13章 修饰符 247

13.2.1 存取属性级别 248

13.2 存取修饰符 248

实例13-1 存取属性范围 249

13.2.2 存取属性范围 249

13.2.3 使用存取属性的限制 250

实例13-2 使用声明的存取属性限制 251

实例13-4 private修饰符应用 252

13.2.5 private修饰符 252

13.2.4 internal修饰符 252

实例13-3 internal修饰符应用 252

实例13-5 protected修饰符应用 253

13.2.6 protected修饰符 253

实例13-7 存取公开成员 254

13.2.7 public修饰符 254

实例13-6 在继承类中存取基类受保护成员 254

13.3 abstract修饰符 255

实例13-8 抽象类应用 256

13.4 const修饰符 257

实例13-9 在类中使用常量 258

13.5 event修饰符 259

实例13-10 事件的创建和调用 260

实例13-11 event修饰符示例1 261

实例13-12 event修饰符示例2 263

13.6 extern修饰符 264

实例13-14 extern修饰符示例 265

实例13-13 消息框 265

实例13-15 调用基类中被覆盖的方法 266

13.7 override修饰符 266

13.8 readonly修饰符 267

实例13-16 只读域 268

13.10 static修饰符 269

实例13-17 密封类 269

13.9 sealed修饰符 269

实例13-18 静态成员应用 270

实例13-19 虚方法和覆盖 271

13.11 virtual修饰符 271

习题 273

13.12 小结 273

14.1 名字空间概述 277

第14章 名字空间 277

实例14-1 把两个类定义成为名字空间的一部分 278

14.2.2 说明 278

14.2 namespace关键词 278

14.2.1 语法规则 278

14.3.1 语法规则 279

14.3 using关键词 279

实例14-2 使用namespace关键词声明名字空间 279

实例14-3 定义和使用名字空间的using别名 280

14.3.2 说明 280

14.4 C#和Java的名字空间 281

实例14-4 定义using指令及使用类的using别名 281

实例14-5 C#编程中名字空间的重要作用 282

14.5 C#堆栈实现 282

实例14-7 客户程序:自定义名字空间的使用 284

实例14-6 自定义名字空间 284

14.6 名字空间应用实例 284

习题 285

14.7 小结 285

15.1.1 目录管理 287

15.1 文件存储管理 287

第15章 文件操作 287

实例15-1 查询文件夹的信息以及文件夹中包含的文件名 288

实例15-2 显示指定文件的属性 289

15.1.2 文件管理 289

实例15-3 文件的复制和删除 290

15.1.3 复制和删除 290

实例15-4 读取并输出文本文件 291

15.2.1 读取文本文件 291

15.2 读写文件 291

实例15-5 写内容到文本文件 292

15.2.2 写入文本文件 292

实例15-6 写入二进制文件 293

15.2.3 写入二进制文件 293

15.3 文件操作实例 294

实例15-7 读取二进制文件 294

15.2.4 读取二进制文件 294

实例15-8 读文件 295

实例15-9 写文件,加行号输出 296

实例15-10 文件行数统计 297

习题 298

15.4 小结 298

实例16-1 #if预处理指令应用 299

16.1 #if预处理指令 299

第16章 预处理指令 299

16.3 #elif预处理指令 300

16.2 #else预处理指令 300

实例16-2 #undef预处理指令应用 301

16.6 #undef预处理指令 301

16.4 #endif预处理指令 301

16.5 #define预处理指令 301

16.8 #error预处理指令 302

实例16-3 #warning预处理指令应用 302

16.7 #warning预处理指令 302

16.10 #region预处理指令 303

实例16-5 #line预处理指令应用 303

实例16-4 #error预处理指令应用 303

16.9 #line预处理指令 303

习题 304

16.12 小结 304

实例16-6 #region预处理指令应用 304

16.11 #endregion预处理指令 304

实例17-1 计算一个数的阶乘 305

17.1 校验和非校验语句 305

第17章 异常处理 305

17.1.2 语法溢出校验 306

17.1.1 在编译器设置溢出校验 306

17.2.1 使用try和catch捕获异常 307

17.2 抛出异常的方法 307

实例17-2 阶乘计算中的溢出校验 307

实例17-3 捕获由factorial calculation引发的OverflowException异常 308

实例17-4 在finally语句中处理异常 309

17.2.2 使用try和finally清除异常 309

实例17-5 从try语句跳转到finally语句 310

实例17-7 顺序不适当的catch语句 311

实例17-6 实现多个catch语句 311

17.2.3 使用try-catch-finally处理所有异常 311

17.3 抛出异常 312

实例17-9 创建自己的异常类 313

17.3.2 创建自己的异常类 313

17.3.1 重新引发异常 313

实例17-8 重新引发一个异常 313

17.4 异常处理的注意事项 314

习题 315

17.5 小结 315

18.1.1 标记 317

18.1 文档注释标记 317

第18章 XML文档 317

18.1.2 标记 318

实例18-1 标记应用 318

实例18-2 标记应用 319

18.1.3 标记 319

实例18-3 标记应用 320

18.1.4 标记 320

18.1.5 标记 321

18.1.6 标记 322

实例18-4 标记应用 322

18.1.8 标记 323

实例18-5 标记应用 323

18.1.7 标记 323

18.1.9 标记 324

实例18-6 标记应用 324

实例18-8 标记应用 325

18.1.10 标记 325

实例18-7 标记应用 325

实例18-9 标记应用 326

18.1.11 标记 326

18.1.14

标记 327

18.1.13 标记 327

18.1.12 标记 327

18.1.15 标记 328

实例18-10

标记应用 328

18.2 处理XML文件 329

实例18-11 标记应用 329

实例18-12 注释用户定义的类、方法和属性等 331

18.3 应用实例 331

习题 334

18.4 小结 334

实例19-1 创建从Web服务器返回HTML网页的类 335

19.1.1 创建C#组件 335

第19章 用C#编写组件的方法 335

19.1 创建和编译C#组件 335

19.1.3 在客户应用程序中使用组件 337

19.1.2 编译C#组件 337

19.2 使用名字空间工作 338

实例19-2 用RequestWebPage类返回一个简单的网页 338

实例19-3 在名字空间中实现WhoisLookup类 339

19.2.1 在名字空间中包装类 339

实例19-4 测试WhoisLookup组件 341

19.2.2 在客户应用程序中使用名字空间 341

实例19-5 传递命令行参数给Query方法 342

19.2.3 增加多个类到名字空间 343

习题 344

19.3 小结 344

实例20-1 第一个Windows Forms程序 345

20.1 Windows Forms程序初步 345

第20章 Windows Forms编程 345

20.2 Windows Forms编程模式 346

实例20-2 Windows 2000透明窗体 347

20.2.1 窗体 347

20.2.2 控件 348

实例20-3 向窗体添加控件 349

20.2.3 事件 350

实例20-4 为控件注册事件 351

实例20-5 一个事件处理方法中处理多个事件 354

20.3.1 给窗体添加主菜单 356

20.3 菜单设计 356

实例20-6 创建窗体主菜单 357

实例20-7 上下文菜单应用 359

20.3.2 创建上下文菜单 359

20.4 重画窗口 361

实例20-8 OnPaint方法应用 362

20.5.1 MDI编程 363

20.5 GUI编程实例 363

实例20-9 C#MDI演示程序 366

20.5.2 简单的计算器程序 368

实例20-10 一个简单的计算器程序 370

实例20-11 获得计算机名称和IP地址 375

20.5.3 获得计算机名称和IP地址 375

20.5.4 C#的API编程 378

实例20-12 Hello World!MessageBox信息框 379

实例20-13 获取系统信息 382

20.5.5 使用注册表 386

实例20-14 注册表信息读取与设置 387

实例20-15 文本文件打印 393

20.5.6 文件打印 393

习题 397

20.6 小结 397

21.1 ADO.NET 399

第21章 C#数据库编程 399

21.1.1 Connection对象 400

21.1.4 DataView对象 401

21.1.3 DataSet对象 401

21.1.2 Command对象 401

21.1.6 DataAdapter对象 402

21.1.5 DataReader对象 402

21.1.8 两种连接数据库的方式 404

21.1.7 Command与DataAdapter比较 404

21.1.9 读取数据 405

21.1.10 连接数据库应用实例 406

实例21-1 ADO读取数据库信息 407

实例21-2 使用DataGrid显示Access数据库中的数据 410

21.2.1 DataGrid数据浏览 410

21.2 C#数据库的Windows编程 410

实例21-3 动态DataGrid 412

实例21-4 SQL Managed Povider连接SQL Sever 7.0数据库 415

21.2.2 访问SQL Server 7.0数据库 415

21.2.3 自定义界面的数据浏览 417

实例21-5 浏览书籍信息 421

21.3 C#与ASP.NET结合 427

实例21-6 C#与ASP.NET结合开发Web应用程序 430

习题 437

21.4 小结 437

22.1 Web Service概述 439

第22章 Web Service编程 439

实例22-1 Hello World的Web Service程序 441

22.1.1 如何编写Web Service 441

22.1.2 Web Service测试 442

22.1.3 从客户端进行访问 443

22.2 Web Service编程实例 444

22.1.4 Web Service中的数据类型 444

实例22-2 返回DataSet的Web Service程序 445

22.2.1 返回DataSet的Web Service实例 445

22.2.2 在客户机上部署Web Service 447

实例22-3 访问Web Service的ASP.NET程序代码 450

22.3 小结 451

习题 452

附录A C#有关资源 453

相关图书
作者其它书籍
返回顶部