登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』C#高级编程(第9版)——C# 5.0 & .NET 4.5.1(.NET开发经典名著)

書城自編碼: 2511442
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [美]内格尔 [Nagel,C.] 等著
國際書號(ISBN): 9787302380023
出版社: 清华大学出版社
出版日期: 2014-10-01
版次: 1
頁數/字數: 1552/2676000
書度/開本: 16开 釘裝: 平装

售價:NT$ 1332

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
第三帝国图文史(修订版):纳粹德国浮沉实录(彩色精装典藏版)
《 第三帝国图文史(修订版):纳粹德国浮沉实录(彩色精装典藏版) 》

售價:NT$ 941.0
四大会计师事务所:历史秘辛与未来挑战
《 四大会计师事务所:历史秘辛与未来挑战 》

售價:NT$ 386.0
中国社会经济史
《 中国社会经济史 》

售價:NT$ 498.0
犯罪心理X档案:法医精神科医生真实办案手记(第一季)法医精神科医师心理解剖手记
《 犯罪心理X档案:法医精神科医生真实办案手记(第一季)法医精神科医师心理解剖手记 》

售價:NT$ 269.0
台湾农业产业发展研究
《 台湾农业产业发展研究 》

售價:NT$ 549.0
流风回雪:六朝名士的庙堂与山林(论衡系列)
《 流风回雪:六朝名士的庙堂与山林(论衡系列) 》

售價:NT$ 381.0
妈妈,我想为自己而活
《 妈妈,我想为自己而活 》

售價:NT$ 325.0
再造大唐:郭子仪评传
《 再造大唐:郭子仪评传 》

售價:NT$ 437.0

建議一齊購買:

+

NT$ 1341
《 精通ASP.NET 4.5(第5版) 》
+

NT$ 911
《 C#入门经典(第6版) 》
+

NT$ 891
《 深入理解C#(第3版) 》
+

NT$ 905
《 CLR via C#(第4版) 》
編輯推薦:
累计畅销16年,wrox精品红皮书,引领无数程序员进入程序开发殿堂
2009年度2011年度全行业优秀畅销书,深受广大读者喜爱
 2008年度优秀技术图书!
 2007年度最畅销的C#销售图书!
 2006年最受读者喜爱的十大技术开发类图书!
 2005年最权威的十大IT图书之C#2010最新版!
內容簡介:
本书由.NET专家的梦幻组合编写,包含开发人员使用C#所需的所有内容。C#是编写.NET应用程序的一种语言,本书适合于希望提高编程技巧的、有经验的C#程序员,也适用于刚开始使用C#的专业开发人员。本书探讨了Visual Studio 2013和.NET Framework4.5.1、新的测试驱动开发和并发编程功能。所有示例的源代码都可以下载,读者可以立即开始编写Windows桌面应用程序、Windows
Store应用程序和ASP.NET Web应用程序。
關於作者:
Christian Nagel是Microsoft RD、Microsoft MVP、thinktecture的合作伙伴、CN革新技术的奠基人,他还是一位软件架构师和开发人员,为开发Microsoft .NET解决方案提供培训和咨询服务。他具备超过25年的软件开发经验。Christian从PDP 11和VAXVMS系统开始其计算机生涯,熟悉各种语言和平台。他具备Microsoft技术的深厚功底,编写了大量图书,并获得了Microsoft认证培训师和专业开发人员证书。

Jay Glynn开发软件的时间超过20年,使用PICK Basic为PICK操作系统编写应用程序。到目前为止,他使用过Delphi、VBA、Visual
Basic、C、Java和C#编写软件。他目前是VGT的高级软件工程师,编写基于Web的应用程序。

Morgan Skinner是一位自由顾问,他在开始自己的顾问生涯之前,在Microsoft工作了将近10年。
目錄
目 录

第Ⅰ部分
C# 语 言

第1章
.NET体系结构 2

1.1 C#与.NET的关系 2

1.2 公共语言运行库 3

1.2.1 平台无关性 3

1.2.2 提高性能 3

1.2.3 语言的互操作性 4

1.3 中间语言 6

1.3.1 面向对象和接口的支持 6

1.3.2 不同的值类型和引用类型 7

1.3.3 强数据类型化 7

1.3.4 通过异常处理错误 12

1.3.5 特性的使用 12

1.4 程序集 12

1.4.1 私有程序集 13

1.4.2 共享程序集 13

1.4.3 反射 14

1.4.4 并行编程 14

1.4.5 异步编程 14

1.5 .NET Framework类 15

1.6 名称空间 15

1.7 用C#创建.NET应用程序 16

1.7.1 创建ASP.NET应用程序 16

1.7.2 使用WPF 17

1.7.3 Windows
Store应用程序 18

1.7.4 Windows服务 18

1.7.5 WCF 18

1.7.6 Windows WF 19

1.8 C#在.NET企业体系结构中的作用 19

1.9 小结 20

第2章 核心C# 22

2.1 C#基础 23

2.2 第一个C#程序 23

2.2.1 代码 23

2.2.2 编译并运行程序 23

2.2.3 详细介绍 24

2.3 变量 26

2.3.1 变量的初始化 26

2.3.2 类型推断 27

2.3.3 变量的作用域 28

2.3.4 常量 30

2.4 预定义数据类型 31

2.4.1 值类型和引用类型 31

2.4.2 CTS类型 32

2.4.3 预定义的值类型 32

2.4.4 预定义的引用类型 35

2.5 流控制 37

2.5.1 条件语句 37

2.5.2 循环 40

2.5.3 跳转语句 43

2.6 枚举 44

2.7 名称空间 46

2.7.1 using语句 47

2.7.2 名称空间的别名 48

2.8 Main方法 48

2.8.1 多个Main方法 49

2.8.2 给Main方法传递参数 50

2.9 有关编译C#文件的更多内容 50

2.10 控制台IO 52

2.11 使用注释 54

2.11.1 源文件中的内部注释 54

2.11.2 XML文档 54

2.12 C#预处理器指令 56

2.12.1 #define和#undef 57

2.12.2 #if、#elif、#else和#endif 57

2.12.3 #warning和#
error 58

2.12.4 #region和#endregion 58

2.12.5 #line 59

2.12.6 #pragma 59

2.13 C#编程规则 59

2.13.1 关于标识符的规则 59

2.13.2 用法约定 60

2.14 小结 66

第3章 对象和类型 67

3.1 创建及使用类 67

3.2 类和结构 68

3.3 类 69

3.3.1 数据成员 69

3.3.2 函数成员 69

3.3.3 只读字段 81

3.4 匿名类型 82

3.5 结构 82

3.5.1 结构是值类型 84

3.5.2 结构和继承 84

3.5.3 结构的构造函数 85

3.6 弱引用 85

3.7 部分类 86

3.8 静态类 87

3.9 Object类 88

3.9.1
System.Object方法 88

3.9.2 ToString方法 89

3.10 扩展方法 90

3.11 小结 91

第4章 继承 92

4.1 继承 92

4.2 继承的类型 92

4.2.1 实现继承和接口继承 92

4.2.2 多重继承 93

4.2.3 结构和类 93

4.3 实现继承 93

4.3.1 虚方法 94

4.3.2 隐藏方法 95

4.3.3 调用函数的基类版本 96

4.3.4 抽象类和抽象函数 97

4.3.5 密封类和密封方法 97

4.3.6 派生类的构造函数 98

4.4 修饰符 102

4.4.1 可见性修饰符 103

4.4.2 其他修饰符 103

4.5 接口 104

4.5.1 定义和实现接口 105

4.5.2 派生的接口 108

4.6 小结 109

第5章 泛型 110

5.1 泛型概述 110

5.1.1 性能 111

5.1.2 类型安全 112

5.1.3 二进制代码的重用 112

5.1.4 代码的扩展 113

5.1.5 命名约定 113

5.2 创建泛型类 113

5.3 泛型
內容試閱
2.1 C#基础
理解了C#的用途后,就可以学习如何使用它了。本章将介绍C#的基础知识,本章的内容也是后续章节的基础,好的开端等于成功的一半。阅读完本章后,读者就有足够的C#知识编写简单的程
序了,但还不能使用继承或其他面向对象的特征。这些内容将在后面的几章中讨论。
2.2 第一个C#程序
下面编译并运行最简单的C#程序,这是一个简单的控制台应用程序,它由把某条消息写到屏幕上的一个类组成。
2.2.1 代码
在文本编辑器如Notepad中输入下面的代码,把它保存为后缀名为.cs 的文件如First.cs。Main方法如下所示更多信息参见2.7 节:
using System;
namespace Wrox
{
public class MyFirstClass
{
static void Main
{
Console.WriteLine"Hello from Wrox.";
Console.ReadLine;
return;
}
}
}
2.2.2 编译并运行程序
对源文件运行C#命令行编译器csc.exe,编译这个程序:后面几章会介绍许多代码示例。编写C#程序最常用的技巧是使用Visual Studio2013 生成一个基本项目,再添加自己的代码。但是,第Ⅰ部分的目的是讲授C#语言,为了简单起见,在第17 章之前避免涉及Visual Studio 2013。我们使代码显示为简单的文件,这样就可以使用任何文本编辑器输入它们,并在命令行上编译。
csc First.cs
如果使用csc 命令在命令行上编译代码,就应注意.NET 命令行工具包括csc只有在设置了某些环境变量后才能使用。根据安装.NET和Visual Studio的方式,这里显示的结果可能与你计算机上的结果不同。
编译代码,会生成一个可执行文件First.exe。在命令行或Windows Explorer 上,像运行任何可执行文件那样运行该文件,得到如下结果:
csc First.cs
Microsoft R Visual C# Compiler version 12.021005.1
For C# 5.0
Copyright C Microsoft Corporation. All rights reserved.
First.exe
Hello from Wrox.
2.2.3 详细介绍
首先对C#语法做几个一般性的解释。在C#中,与其他C 风格的语言一样,大多数语句都以分号;结尾,语句可以写在多个代码行上,不需要使用续行字符。用花括号{}把语句组合为块。单行注释以两个斜杠字符开头,多行注释以一条斜杠和一个星号*开头,以一个星号和一条斜杠*结尾。在这些方面,C#与C++和Java 一样,但与Visual Basic 不同。分号和花括号使C#代码与VisualBasic 代码有差异很大的外观。如果你以前使用的是Visual Basic,就应特别注意每条语句结尾的分号。对于新接触C 风格语言的用户,忽略分号常常是导致编译错误的一个最主要的原因。另一个方面是,C#区分大小写,也就是说,变量myVar 与MyVar 是两个不同的变量。
在上面的代码示例中,前几行代码与名称空间有关如本章后面所述,名称空间是把相关类组合在一起的方式。namespace 关键字声明了应与类相关的名称空间。其后花括号中的所有代码都被认为是在这个名称空间中。编译器在using 语句指定的名称空间中查找没有在当前名称空间中定义但在代码中引用的类。这非常类似于Java 中的import 语句和C++中的using namespace 语句。
using System;
namespace Wrox
{
在First.cs 文件中使用using 指令的原因是下面要使用一个库类System.Console。using System语句允许把这个类简写为ConsoleSystem 名称空间中的其他类也与此类似。如果没有using,就必如果没有设置环境变量,有两种解决方法。第1 种方法是在运行csc 之前,从命令提示符窗口上运行批处理文件%Microsoft Visual Studio 2013%\Common7\Tools\vsvars32.bat。其中%Microsoft Visual Studio 2013%是Visual Studio 2013 的安装文件夹。
第2 种方法更简单是使用Visual Studio 2013 命令提示符代替通常的命令提示符窗口。
Visual Studio 2013 命令提示符在菜单“开始”|“程序”| Microsoft Visual Studio 2013|VisualStudio Tools 子菜单下。它只是一个命令提示符窗口,打开时会自动运行vsvars32.bat。
第2 章 核 心 C#须完全限定对Console.WriteLine方法的调用,如下所示:
System.Console.WriteLine"Hello from Wrox.";
标准的System 名称空间包含了最常用的.NET 类型。在C#中做的所有工作都依赖于.NET 基类,认识到这一点非常重要;在本例中,我们使用了System 名称空间中的Console 类,以写入控制台窗口。C#没有用于输入和输出的内置关键字,而是完全依赖于.NET 类。接着,声明一个类MyFirstClass。但是,因为该类位于Wrox 名称空间中,所以其完整的名称是
Wrox.MyFirstCSharpClass:
class MyFirstCSharpClass
{
所有的C#代码都必须包含在一个类中。类的声明包括class 关键字,其后是类名和一对花括号。
与类相关的所有代码都应放在这对花括号中。
下面声明方法Main。每个C#可执行文件如控制台应用程序、Windows 应用程序和Windows服务都必须有一个入口点——Main方法注意M大写:
public static void Main
{
在程序启动时调用这个方法。该方法要么没有返回值void,要么返回一个整数int。注意,在
C#中方法的定义如下所示:
[modifiers] return_type MethodName[parameters]
{
Method body. NB. This code block is pseudo-code.
}
第一个方括号中的内容表示可选关键字。修饰符modifiers用于指定用户所定义的方法的某些特性,如可以在什么地方调用该方法。在本例中,有两个修饰符public 和static。修饰符public 表示可以在任何地方访问该方法,所以可以在类的外部调用它。修饰符static 表示方法不能在类的实例上执行,因此不必先实例化类再调用。这非常重要,因为我们创建的是一个可执行文件,而不是类库。把返回类型设置为void,在本例中,不包含任何参数。
最后,看看代码语句:
Console.WriteLine"Hello from Wrox.";
Console.ReadLine;
return;
在本例中,我们只调用了System.Console 类的WriteLine方法,把一行文本写到控制台窗口上。WriteLine是一个静态方法,在调用之前不需要实例化Console 对象。
Console.ReadLine读取用户的输入,添加这行代码会让应用程序等待用户按回车键,之后退出几乎所有的C#程序都使用System 名称空间中的类,所以假定本章所有的代码文
件都包含using System;语句。
应用程序。在Visual Studio 2013 中,控制台窗口会消失。
然后调用return 退出该方法因为这是Main 方法,所以也退出了程序。在方法头中指定void,因此没有返回值。
对C#基本语法有了大致的认识后,下面就详细讨论C#的各个方面。因为没有变量不可能编写出重要的程序,所以首先介绍C#中的变量。
2.3 变量
在C#中声明变量使用下述语法:
datatype identifier;
例如:
int i;
该语句声明int 变量i。编译器不允许在表达式中使用这个变量,除非用一个值初始化了该变量。
声明i 之后,就可以使用赋值运算符=给它赋值:
i = 10;
还可以在一行代码中声明变量,并初始化它的值:
int i = 10;
如果在一条语句中声明和初始化了多个变量,那么所有的变量都具有相同的数据类型:
int x = 10, y =20; x and y are both ints
要声明不同类型的变量,需要使用单独的语句。在多个变量的声明中,不能指定不同的数据类型:
int x = 10;
bool y = true; Creates a variable that stores true or false
int x = 10, bool y = true; This won''t compile!
注意上面例子中的“”和其后的文本,它们是注释。“”字符串告诉编译器,忽略该行后面的文本,这些文本仅为了让人更好地理解程序,它们并不是程序的一部分。本章后面会详细讨论代码中的注释。
2.3.1 变量的初始化
变量的初始化是C#强调安全性的另一个例子。简单地说,C#编译器需要用某个初始值对变量进行初始化,之后才能在操作中引用该变量。大多数现代编译器把没有初始化标记为警告,但C#编译器把它当作错误来看待。这就可以防止我们无意中从其他程序遗留下来的内存中获取垃圾值。
C#有两个方法可确保变量在使用前进行了初始化:
● 变量是类或结构中的字段,如果没有显式初始化,创建这些变量时,其默认值就是0类和结构在后面讨论。
● 方法的局部变量必须在代码中显式初始化,之后才能在语句中使用它们的值。此时,初始化不是在声明该变量时进行的,但编译器会通过方法检查所有可能的路径,如果检测到局部变量在初始化之前就使用了它的值,就会产生错误。
例如,在C#中不能使用下面的语句:
public static int Main
{
int d;
Console.WriteLined; Can''t do this! Need to initialize d before use
return 0;
}
注意在这段代码中,演示了如何定义Main,使之返回一个int 类型的数据,而不是void。在编译这些代码时,会得到下面的错误消息:
Use of unassigned local variable ''d''
考虑下面的语句:
Something objSomething;
在C#中,这行代码仅会为Something 对象创建一个引用,但这个引用还没有指向任何对象。对该变量调用方法或属性会导致错误。
在C#中实例化一个引用对象需要使用new 关键字。如上所述,创建一个引用,使用new 关键字把该引用指向存储在堆上的一个对象:
objSomething = new Something; This creates a Something on the heap
2.3.2 类型推断
类型推断type inference使用var 关键字。声明变量的语法有些变化。编译器可以根据变量的初始化值“推断”变量的类型。例如:
int someNumber = 0;
就变成:
var someNumber = 0;

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.