4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
DBMS-Project_Mediatech:真实世界的网络应用-源码-其它代码类资源...
来自 : CSDN技术社区 发布时间:2021-03-25
\" utm=\"distribute.pc_relevant_download.none-task-\">\"\"7.30MB

algorithm-hackerrank:算法https://www.hackerrank.comdomainsalgorithms?filters%5Bdifficulty%5D%5B%5D = medium数据结构https:www.hackerrank.comdomainsdata-structures?filters%5Bdifficulty%5D%5B%5D%D = medium-源码

2021-02-16

algorithm-hackerrank:算法https://www.hackerrank.comdomainsalgorithms?filters%5Bdifficulty%5D%5B%5D = medium数据结构https:www.hackerrank.comdomainsdata-structures?filters%5Bdifficulty%5D%5B%5D%D = medium

\"\"20KB

svchost.exe[1348]中发生未处理的win32异常解决办法

2011-07-21

svchost.exe[1348]中发生未处理的win32异常这是一个远程代码执行漏洞。成功利用此漏洞的攻击者会完全远程控制受影响的系统

\"\"65.8MB

java源码包---java 源码 大量 实例

2013-04-18

Applet钢琴模拟程序java源码2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。Calendar万年历1个目标文件EJB 模拟银行ATM流程及操作源代码6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt 账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例 ejbCreate函数用于初始化一个EJB实例5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。EJB中JNDI的使用源码例子1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context ftp文件传输2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。Java EJB中有、无状态SessionBean的两个例子两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除 Java Socket 聊天通信演示代码2个目标文件,一个服务器,一个客户端。Java Telnet客户端实例源码一个目标文件,演示Socket的使用。Java 组播组中发送和接受数据实例3个目标文件。Java读写文本文件的示例代码1个目标文件。java俄罗斯方块一个目标文件。Java非对称加密源码实例1个目标文件摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为 张三,你好,我是李四 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息 Java利用DES私钥对称加密代码实例同上java聊天室2个目标文件,简单。java模拟掷骰子2个1个目标文件,输出演示。java凭图游戏一个目标文件,简单。java求一个整数的因子如题。Java生成密钥的实例1个目标文件摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。Java数据压缩与传输实例1个目标文件摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。Java数组倒置简单Java图片加水印,支持旋转和透明度设置摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设

\"\"6.16MB

C#微软培训教材(高清PDF)

2009-07-30

C#--微软.NET的第一语言本书着重介绍语言本身,比较少涉及应用,不错的入门书,从头讲起,不怕不明白。 page 1 page begin==================== 目 目目 目 录 录录 录第一部分 C#语言概述.4第一章第一章第一章第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET 一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27第二部分 C#程序设计基础.28第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56第七章 表 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系操作符和关系表达式.65 page 2 page begin==================== 7.5 逻辑操作符和逻辑表达式.68 7.6 位 运 算 .69 7.7 其它特殊操作符 .72 7.8 小 结 .77第八章 流 程 控 制 .79 8.1 条 件 语 句 .79 8.2 循 环 语 句 .86 8.3 条 件 编 译.90 8.4 异常处理语句 .95 8.5 小 结 .100第三部分 面向对象的 C#.101第九章 面向对象的程序设计 .101 9.1 面向对象的基本概念.101 9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110第十章 类 .112 10.1 类 的 声 明 .112 10.2 类 的 成 员 .113 10.3 构造函数和析构函数 .119 10.4 小 结 .122第十一章 方 法 .124 11.1 方法的声明.124 11.2 方法中的参数.125 11.3 静态和非静态的方法.129 11.4 方法的重载.130 11.5 操作符重载.134 11.6 小 结.137第十二章 域 和 属 性 .139 12.1 域 .139 12.2 属 性 .143 12.3 小 结 .146第十三章 事件和索引指示器 .148 13.1 事 件 .148 13.2 索引指示器 .151 13.3 小 结 .154第十四章 继 承 .155 14.1 C#的继承机制.155 page 3 page begin==================== 14.2 多 态 性 .159 14.3 抽象与密封 .163 14.4 继承中关于属性的一些问题.169 14.5 小 结 .172第四部分 深入了解 C#.174第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 15.5 抽象类与接口 .195 15.6 小 结 .196第十六章 组织应用程序 .198 16.1 基 本 概 念 .198 16.2 使用名字空间 .200 16.3 使用指示符 .203 16.4 程 序 示 例 .206 16.5 小 结 .213第十七章 文 件 操 作 .215 17.1 .Net 框架结构提供的 I/O 方式 .215 17.2 文件存储管理 .217 17.3 读 写 文 件 .222 17.4 异步文件操作 .227 17.5 小 结 .234第十八章 高 级 话 题 .235 18.1 注册表编程 .235 18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254第五部分 附 录 .255附录 A 关 键 字.255附录 B 错 误 码.256附录 C .Net 名字空间成员速查.269参 考 资 料 .300 page 4 page begin==================== 第一部分 C#语言概述 第一章 第一章第一章 第一章 .NET 编程语 编程编程 编程 言 语言语言 语言 C# 未来 未来未来 未来 5 年 年年 年 我们的目标就 我们的目标就我们的目标就 我们的目标就是超 是是 是 越今天各自为营的 超越今天各自为营的超越今天各自为营的 超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可以互相交换组件的地方以互相交换组件的地方以互相交换组件的地方以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天这一天 微软公司正式推出了其下一代计算计划 Microsoft.NET(以下简称.NET)这项计划将使微软现有的软件在 Web 时代不仅适用于传统的 PC 而且也能够满足目前呈强劲增长势头的新设备 诸如蜂窝电话以及个人数字助理 Personal Digital Assistant,PDA 等的需要 微软还计划通过创建新的工具来吸引软件开发人员和合作伙伴对Microsoft.NET 的认同 并且开发出其他基于 Internet 的服务 那么 你是否想知道 究竟什么是.NET? 请听听微软官员的声音 因特网的革命 从微软的角度来讲 我们就是要建设一个平台来创建并且支持新一代的应用 我们必须有一套通用系统服务来支持这样的操作 这种观点就说明 我们还有下一个层次的发展 也就是说因特网下一步的发展 它将使因特网的作用远远超越展现一个网站 .NET 首先是一个开发平台 它定义了一种公用语言子集 Common LanguageSubset CLS ,这是一种为符合其规范的语言与类库之间提供无缝集成的混合语 .NET统一了编程类库 提供了对下一代网络通信标准 可扩展标记语言 Extensible Markup page 5 page begin====================Language XML 的完全支持 使应用程序的开发变得更容易 更简单 Microsoft.NET计划还将实现人机交互方面的革命 微软将在其软件中添加手写和语音识别的功能让人们能够与计算机进行更好的交流 并在此基础上继续扩展功能 增加对各种用户终端的支持能力 最为重要的 .NET 将改变因特网的行为方式 软件将变成为服务与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏伟目标是让 Microsoft.NET 彻底改变软件的开发方式 发行方式 使用方式等等 并且不止是针对微软一家 而是面向所有开发商与运营商 .NET 的核心内容之一就是要搭建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间形成自动交流 协同工作 提供最全面的服务1.1.2 我们为什么需要.NET 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公司打算今后将中心转移到可以在网络上使用 服务 型商务 这样 首要的问题就是解决网络上用来开发并执行 服务 的平台 这就是 Microsoft.NET 提高软件开发生产效率 并且试图使应用软件的发布更为容易 再也不想因为 DLL版本不同而烦恼 希望不用重新启动电脑就能够安装应用软件 改进用户界面 并能支持多种用户终端 用户界面演进的结果包括两方面的内容一是完成传统的 PC 界面与基于 XML 的浏览器界面间的过渡 二是对自然语言和语音识别的支持 从而使用户与各种终端之间的沟通更加透明 真正达到网络互连的 3AAnywhere Anytime Any device 今天 许多的人时常问 除了上网看新闻 我们究竟还能干什么 这是因为今天的互联网与旧式的大型计算机的工作模式还有许多相似之处 信息被储存在中央服务器内 而用户的所有操作都要依靠它们 让不同的网址之间相互传递有意义的信息或者合作提供更广泛和更深层次的服务 还是一件十分困难的事 现代人时常有一种困惑 感觉到如今生活在技术与机器架构的丛林中 我们在努力地去适应机器 适应技术 而不是机器和技术适应人类 科技以人为本还只是一个美好的愿望 这是因为我们还不能将控制信息的权利交给那些需要信息的人们 .NET page 6 page begin====================的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不是束缚在便携式电脑的方寸空间 可通过任何桌面系统 任何便携式电脑 任何移动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任何设备都可访问其个人数据和应用程序的宏伟蓝图 .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一个消除任何鸿沟的商务世界1.1.3 .NET 的核心组件 .NET 的核心组件包括 一组用于创建互联网操作系统的构建块 其中包括 Passport.NET 用于用户认证 以及用于文件存储的服务 用户首选项管理 日历管理以及众多的其它任务 构建和管理新一代服务的基本结构和工具 包括 Visual Studio.NET .NET 企业服务器 .Net Framework 和 Windows.NET 能够启用新型智能互联网设备的.NET 设备软件 .NET 用户体验 1.2 .NET 与 C#1.2.1 支持多种编程语言的.NET 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了 page 7 page begin====================这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NETFramework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 JohnMontgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET平台欢迎所有人的垂顾 .NET 将使编程人员梦想的语言互用性变成为近在眼前的现实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 CommonLanguage Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包括 Windows Forms ADO.NET 和 ASP.NET 紧密结合在一起 提供了不同系统之间交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种类语言间的无缝集成1.2.2 面向.Net 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在 page 8 page begin====================一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++的开发人员很快就能精通 C# 1.3 C#语言的特点 C#在带来对应用程序的快速开发能力的同时 并没有牺牲 C 与 C++程序员所关心的各种特性 它忠实地继承了 C 和 C++的优点 如果你对 C 或 C++有所了解 你会发现它是那样的熟悉 即使你是一位新手 C#也不会给你带来任何其它的麻烦 快速应用程序开发 Rapid Application Development RAD 的思想与简洁的语法将会使你迅速成为一名熟练的开发人员 正如前文所述 C#是专门为.NET 应用而开发出的语言 这从根本上保证了 C#与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将会深深体会到 # SHARP 的真正含义 简洁的语法 精心地面向对象设计 与 Web 的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性1.3.1 简洁的语法 请原谅 虽然我们一再强调学习本书不需要任何的编程基础 但在这里还不得不提到 C++ 在缺省的情况下 C#的代码在.NET 框架提供的 可操控 环境下运行 不允许直接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯狂使用的操作符 例如 - 和 ., 已经不再出现 C#只支持一个 . 对 page 9 page begin====================于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活动模板库 Active Template Library ALT 和COM 搞 得 乱 糟 糟 的 伪 关 键 字 , 如 OLE_COLOR BOOL VARIANT_BOOLDISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 比如 const 和 #define 各种各样的字符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法结构中被清除了出去1.3.2 精心地面向对象设计 也许你会说 从 Smaltalk 开始 面向对象的话题就始终缠绕着任何一种现代程序设计语言 的确 C#具有面向对象的语言所应有的一切特性 封装 继承与多态 这并不出奇 然而 通过精心地面向对象设计 从高级商业对象到系统级应用 C#是建造广泛组件的绝对选择 在 C#的类型系统中 每种类型都可以看作一个对象 C#提供了一个叫做装箱 boxing 与拆箱 unboxing 的机制来完成这种操作 而不给使用者带来麻烦 这在以后的章节中将进行更为详细的介绍 C#只允许单继承 即一个类不会有多个基类 从而避免了类型定义的混乱 在后面的学习中你很快会发现 C#中没有了全局函数 没有了全局变量 也没有了全局常数 一切的一切 都必须封装在一个类之中 你的代码将具有更好的可读性 并且减少了发生命名冲突的可能 整个 C#的类模型是建立在.NET 虚拟对象系统 Visual Object System VOS 的基础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人们终于找到了支点1.3.3 与 Web 的紧密结合 .NET 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有 page 10 page begin====================效地处理各种数据1.3.4 完全的安全性与错误处理 语言的安全性与错误处理能力 是衡量一种语言是否优秀的重要依据 任何人都会犯错误 即使是最熟练的程序员也不例外 忘记变量的初始化 对不属于自己管理范围的内存空间进行修改 这些错误常常产生难以预见的后果 一旦这样的软件被投入使用 寻找与改正这些简单错误的代价将会是让人无法承受的 C#的先进设计思想可以消除软件开发中的许多常见错误 并提供了包括类型安全在内的完整的安全性能 为了减少开发中的错误 C#会帮助开发者通过更少的代码完成相同的功能这不但减轻了编程人员的工作量 同时更有效地避免了错误发生 .NET 运行库提供了代码访问安全特性 它允许管理员和用户根据代码的 ID 来配置安全等级 在缺省情况下 从 Internet 和 Intranet 下载的代码都不允许访问任何本地文件和资源 比方说 一个在网络上的共享目录中运行的程序 如果它要访问本地的一些资源 那么异常将被触发 它将会无情地被异常扔出去 若拷贝到本地硬盘上运行则一切正常 内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担 .NET平台提供的垃圾收集器 Garbage Colection GC 将负责资源的释放与对象撤销时的内存清理工作 变量是类型安全的 C#中不能使用未初始化的变量 对象的成员变量由编译器负责将其置为零 当局部变量未经初始化而被使用时 编译器将做出提醒 C#不支持不安全的指向 不能将整数指向引用类型 例如对象 当进行下行指向时 C#将自动验证指向的有效性 C#中提供了边界检查与溢出检查功能1.3.5 版本处理技术 C#提供内置的版本支持来减少开发费用 使用 C#将会使开发人员更加轻易地开发和维护各种商业应用 升级软件系统中的组件 模块 是一件容易产生错误的工作 在代码修改过程中可能对现存的软件产生影响 很有可能导致程序的崩溃 为了帮助开发人员处理这些问题 C#在语言中内置了版本控制功能 例如 函数重载必须被显式地声明 而不会像在 C++或 Java 中经常发生的那样不经意地被进行 这可以防止代码级错误和保留版本化的特性 另一个相关的特性是接口和接口继承的支持 这些特性可以保证复杂的软件可以被方便地开发和升级1.3.6 灵活性和兼容性 在简化语法的同时 C#并没有失去灵活性 尽管它不是一种无限制的语言 比如它不能用来开发硬件驱动程序 在默认的状态下没有指针等等 但是 在学习过程中你将发现 它仍然是那样的灵巧 如果需要 C#允许你将某些类或者类的某些方法声明为非安全的 这样一来 你 page 11 page begin====================将能够使用指针 结构和静态数组 并且调用这些非安全的代码不会带来任何其它的问题 此外 它还提供了一个另外的东西 这样的称呼多少有些不敬 来模拟指针的功能 delegates 代表 再举一个例子 C#不支持类的多继承 但是通过对接口的继承 你将获得这一功能 下面谈谈兼容性 正是由于其灵活性 C#允许与 C 风格的需要传递指针型参数的 API 进行交互操作DLL 的任何入口点都可以在程序中进行访问 C#遵守.NET 公用语言规范 CommonLanguage Specification CLS 从而保证了 C#组件与其它语言组件间的互操作性 元数据 Metadata 概念的引入既保证了兼容性 又实现了类型安全 1.4 小 结 Microsoft.NET 计划将彻底改变我们对因特网的认识 从而在这样一个网络时代彻底改变我们的生活 软件是一种服务 技术是我们的仆人 时间与地点将不再是我们面前的障碍 建立在 CLR 与类库基础上的.NET 框架是.NET 平台的核心组件之一 这为软件的可移植性与可扩展能力奠定了坚实的基础 并为 C#语言的应用创造了良好的环境 C#是.NET 平台的通用开发工具 它能够建造所有的.NET 应用 其固有的特性保证了它是一种高效 安全 灵活的现代程序设计语言 从最普通的应用到大规模的商业开发 C#与.NET 平台的结合将为你提供完整的解决方案 在本章中 我们提出了与.NET 以及与 C#语言相关的一些概念 例如 CLR VOS和 GC 也许你是初次接触它们 但不用担心 在以后的各章中我们将详细地介绍这些相关的概念与知识 相信通过学习 你将能够迅速掌握它们 并熟练地运用它们提供的各种特性复习题 1 什么是.NET 2 简要说明.NET 战略的意义 3 .NET 的核心组件包括哪些 4 C#与其它语言相比有哪些突出特点 page 12 page begin==================== 第二章 运行环境 全面了解.NET C#运行在.NET 平台之上 其各种特性与.NET 密切联系 它没有自己的运行库许多强大的功能均来自.NET 平台的支持 因此 要想真正掌握 C#首先必须了解.NET本章将向你介绍 C#的运行环境 重点放在.NET 公用语言运行时环境与公用语言规范上 最后介绍了.NET 的开发工具 2.1 .NET 结构 .NET 包括四个组成部分 VOS 类型系统 元数据 公用语言规范 虚拟执行系统 下面分别对它们进行简要介绍2.1.1 虚拟对象系统 .NET 跨语言集成的特性来自于虚拟对象系统 VOS 的支持 在不同语言间进行代码复用和应用集成中所遇到的最大问题 是不同语言类型系统间的相容性问题 可以想象 不同的语言虽然语法结构大体相同 但数据类型与语言环境本身的各种特点联系紧密 很难想象一种解释性的语言所拥有的数据类型会与一种编译语言相同 而即使相同的数据类型在不同的语言环境中表示的意义也存在差别 例如 同样是整数类型 在 MSSQL 中的长度是 32 位 而在 VB 中却是 16 位 至于日期时间与字符串类型在这方面的区别就更加明显了 VOS 的建立就是为了改变这种状况 它既支持过程性语言也支持面向对象的语言同时提供了一个类型丰富的系统来容纳它所支持的各种语言的特性 它在最大程度上屏蔽了不同语言类型系统间的转换 使程序员能够随心所欲地选择自己喜欢的语言 当然 这种语言必须支持.NET 应用 从事开发 保证了不同语言间的集成 对于过程性语言 它描述了值的类型并指定了类型的所有值必须遵守的规则 在面向对象的语言方面 它统一了不同编程语言的对象模型 每一个对象在 VOS 中都被唯一标识以与其它对象相区别 page 13 page begin====================2.1.2 元数据 元数据是对 VOS 中类型描述代码的一种称呼 在编译程序将源代码转换成为中间代码时 它将自动生成 并与编译后的源代码共同包含在二进制代码文件中 元数据携带了源代码中类型信息的描述 这在一定程度上解决了版本问题 程序使用的类型描述与其自身绑定在一起 在 CLR 定位与装载类型时 系统通过读取并解析元数据来获得应用程序中的类型信息 JIT 编译器获得加载的类型信息后 将中间语言代码翻译成为本地代码 在此基础上根据程序或用户要求建立类型的实例 由于整个过程中 CLR 始终根据元数据建立并管理对应特定应用程序的类型 从而保证了类型安全性 此外 元数据在解决方法的调用 建立运行期上下文界限等方面都有着自己的作用 而关于元数据的一切都由.NET 在后台完成2.1.3 公用语言规范 公用语言规范 Common Language Specification CLS 是 CLR 定义的语言特性集合 主要用来解决互操作问题 如果一个类库遵守 CLS 那么同样遵守 CLS 规范的其它编程语言将能够使用它的外部可见项 详细的内容见本章第二节2.1.4 虚拟执行系统 虚拟执行系统 Visual Execution System VES 是 VOS 的实现 它用来驱动运行环境 元数据的生成与使用 公用语言规范的满足性检查以及应用程序执行过程中的内存管理均由它来完成 具体说来 VES 主要完成以下功能 装入中间代码 使用 JIT 将中间代码转换为本地码 装入元数据 代码管理服务 包括垃圾收集器和异常处理 定制与调试服务 线程和环境管理 2.2 公用语言运行时环境与公用语言规范 了解了.NET 的结构之后 我们该看看.NET 利用其结构为我们创造的运行环境 公用语言运行时环境 它是 C#及其它支持.NET 平台的开发工具的运行基础 具体来说 它为我们的应用提供了以下益处 跨语言集成的能力 跨语言异常处理 内存管理自动化 page 14 page begin==================== 强化的安全措施 版本处理技术 组件交互的简化模型2.2.1 理解 CLR .NET 提供了一个运行时环境 叫做公用语言运行时 它管理着代码的执行 并使得开发过程变得更加简单 这是一种可操控的执行环境 其功能通过编译器与其它工具共同展现 你的代码将受益于这一环境 依靠一种以运行时为目标的 指完全支持运行时环境的 编译器所开发的代码叫做可操控代码 它得益于可操控环境的各种特性 跨语言集成 跨语言异常处理 增强的安全性 版本处理与开发支持 简单的组件交互模型以及调试服务 为了使运行时环境能够向可操控代码提供服务 语言编译器需要产生一种元数据 它将提供在你使用语言中的类型 成员 引用的信息 元数据与代码一起存储 每个可加载的 CLR 映像均包含了元数据 运行时环境使用元数据定位并载入类 在内存中展开对象实例 解决方法调用 产生本地代码 强制执行安全性 并建立运行时环境的边界 运行时环境自动处理对象的展开与引用 当它们不再使用时负责它们的释放 被运行时环境进行这样的生命期管理的对象被称为可操控代码 自动内存管理消除了内存溢出 同时也解决了其它一些常见的语法错误 如果你的代码是可操控的 你仍然可以在需要的时候使用非可控代码 或者在你的.NET 应用中同时使用可控与非可控代码 由于语言编译器支持他们自己的类型 比如一些原始类型 你可能并不总是知道 也不必知道 你的数据是否是可控的 CLR 使设计跨语言的组件与应用变得更加容易 以不同语言设计的对象能够彼此间进行通信 并且它们的行为能够紧密地综合与协调 举个例子 你定义了一个类然后可以在另一种不同的语言中从该类中派生了一个类或者调用它其中的一个方法你也可以向另一种语言中类的方法传递该类的一个实例 这种跨语言的集成之所以可能 因为以运行时间为目标的语言编译器与工具使用一种运行时间所定义的公用类型系统 他们遵守运行时的规则 公用语言规范 来定义新的类型 生成 使用 保持并绑定类型 作为元数据的一部分 所有可控组件携带了关于它们所依赖的组件与资源的信息运行时环境使用这些信息来保证你的组件或应用具有需要的所有东西的特定版本 其结果是你的代码将不会因为版本冲突而崩溃 注册信息与状态数据不再保存在难以建立与维护的注册表中 你所定义的类型及附属信息作为元数据被保存 这使得复制与移动组件的复杂程度得到降低 编译工具用他们自己的方式向开发人员展现 CLR 的功能 这意味着运行时间的一些特性可能在不同的语言中的表现形式将会有所不同 你怎样体验运行时的特性将取决于你所使用的语言 比如说 如果你是一位 VB 开发人员 你可能注意到在运行时环境的帮助下 VB 语言比以前具有更多的面向对象的特性 page 15 page begin====================2.2.2 可操控执行的含义 前面的叙述中 我们多次提到了 可操控 这一概念 这意味着它指向的对象在执行过程中完全被运行时环境所控制 在执行过程中 运行时环境提供以下服务 自动内存管理 调试支持 增强的安全性及与非可操控代码的互操作性 例如 COM 组件 在可控执行进程中的第一步是选择源代码的生成工具 如果你希望你的应用拥有CLR 提供的优势 你必须使用一种 或多种 以运行时为目标的语言编译器 例如VB C# VC 的编译器 或者一种第三方编译器如 PERL 或 COBOL 编译器 由于运行时是一种多语言执行环境 它支持众多的数据类型和语言特性 你使用的语言编译器决定你将使用运行时的哪一部分功能子集 在代码中使用的语法由你的编译器决定 而不是运行时环境 如果你的组件需要被其他语言的组件完全使用 那么你必须在你组件的输出类型中使用 CLR 所要求的语言特征 当你完成并编译你的代码时 编译器将它转换为微软中间语言 MicrosoftIntermediate Language MSIL 同时产生元数据 当你要执行你的代码时 这种中间语言被即时 Just In Time JIT 编译器编译成为本地代码 如果安全策略需要的代码是类型安全的 通常情况下都是如此 JIT 编译器将在编译进程中对中间语言进行类型检查 一旦失败 在代码执行中将会触发异常2.2.3 CLR 的突出特色 跨语言集成的能力 CLR 包含了一个丰富的语言特性集 保证了它与各种程序设计语言的兼容性 这一特性集即公用语言规范 稍后将对其进行详细说明 内存管理自动化 在执行过程中管理应用程序的资源是一项单调而困难的工作 它会将你的注意力从你本应解决的问题中引开 而垃圾收集机制完全解决了程序员在编程过程中头痛的问题 跟踪内存的使用 并知道何时将它们释放 在面向对象的环境中 每种类型都标识了对你的应用有用的某种资源 为了使用这些资源 你需要为类型分配内存 在应用中 访问一种资源要通过以下步骤 1 为类型分配内存 2 初始化内存 设置资源的初始状态并使其可用 3 通过访问该类型的实例成员来访问资源 4 卸下将被清除的资源状态 5 释放内存 这一看似简单的过程在实际的编程中是产生程序错误的主要来源之一 更可怕的是 内存中的错误往往导致不可预见的结果 如果你有过编程的经验 想想看 有多少次你的程序因为内存访问错误而崩溃 CLR 要求所有的资源从可操控的堆 注 在此指一种内存结构 中分配 当一个 page 16 page begin====================进程被初始化后 CLR 保留了一个未被分配的地址空间 这一区域叫做可操控堆 在堆中保持了指向下一个将被分配给对象的堆地址的指针 NEXT 初始状态下 该指针是保留地址空间的基地址 一个应用使用新的操作产生对象 此操作首先检查新对象需要字节的大小是否会超出保留空间 如果对象大小合适 指向下一个地址的指针将指向堆中的这个对象 该对象的构造器被调用 新的操作返回对象的地址 当一个应用请求建立一个对象时 地址空间可能不够大 堆将发现这一点 通过将新对象的大小与 NEXT 指针相加 并与堆的大小进行比较 这时垃圾收集器就将被调用 在这里 CLR 引入了 代 的概念 代 指堆中对象产生的先后 这样 垃圾收集器在将发生溢出时回收属于特定的 代 的对象 而不是回收堆中的所有对象 6 即时编译 在各种语言的编译器对源代码进行编译之后 在 CLR 环境中产生的是中间代码 出于兼容性与跨语言集成的考虑 其内容虽然有效 但在转化为本地代码之前它本身是不可执行的 这就是 JIT 编译器需要完成的工作 这里需要说明一个问题 为什么要即时编译 而不是一次性的将中间代码文件进行编译 答案很简单 原因在于效率 在大型的应用中 你很少会用到程序的全部功能 这种边执行边编译的措施比一次性的完全编译效率更高 在 Windows 平台中 CLR 带有三个不同的 JIT 编译器 7 缺省的编译器 主编译器 由它进行数据流分析并输出经过优化的本地代码 所有的中间代码指令均可被它处理 8 PREJIT 它建立在主 JIT 编译器之上 其运行方式更像一个传统的编译器每当一个.NET 组件被安装时它就运行 9 ECONOJIT 在并不充分优化的前提下 它能够快速完成 IL 代码到本地码的转换 编译速度与运行速度都很快 为了配合编译器的工作 在.NET SDK 的安装路径下的/bin 目录中有一个负责管理JIT 的应用程序 jitman.exe 具体的使用参见联机帮助 10 解决版本与发布问题 在当前以组件为基础的系统中 开发人员和用户对于软件版本和发布中存在的问题已经十分熟悉了 当我们安装一个新的应用之后 我们很可能发现原本正常的某个应用程序奇怪地停止了工作 绝大多数开发人员将时间花在了确保所有注册表入口的一致性 以便激活 COM 类上 这就是所谓的 DLL 地狱 .NET 平台通过使用集合来解决这一问题 在这里 集合 是一个专有名词 指类型与资源的发布单元 在很大程度上它等同于今天的 DLL 正像.NET 用元数据描述类型一样 它也用元数据描述包含类型的集合 通常说来 集合由四个部分组成 集合的元数据 集合的内部清单 元数据描述的类型 实现类型的中间语言代码和一组资源 在一个集合中 以上四个部分并不是都必须存在 但是 集合中必须包含类型或资源 这样集合才有意义 在.NET 中一个基本的设计方针是使用孤立的组件 一个孤立的集合的含义是指一个集合只能被一个应用所访问 在一台机器上 它不被多个应用共享 也不会受其它应用程序对系统的更改的影响 孤立 赋予了开发人员在自己的程序中对代码的完全 page 17 page begin====================控制权 任何共享代码都需要被明确地标识 同时 .NET 框架也支持共享集合的概念一个共享集合指在一台机器上被多个应用共享的集合 共享集合需要严格地命名规定有了.NET 应用程序间的共享代码是明确定义的 共享集合需要一些额外的规则来避免我们今天遇到的共享冲突问题 共享代码必须有一个全局唯一的名称 系统必须提供名称保护 并在每当引用共享集合时 CLR 将对版本信息进行检查 此外.NET 框架允许应用或管理员在明确说明的版本政策下重写集合的版本信息2.2.4 公用语言规范 使被不同语言的编译器所编译的对象能够相互理解的唯一方法 是所有在互操作过程中涉及的数据类型和语言特性对所有的语言来说是公共的 为了这个目的 公用运行时环境标识了一组语言特征的集合 称为公用语言规范 CLS 如果你的组件在应用程序接口 Application Program Interface 中仅使用 CLS 的特征语言 包括子类那么该组件能够被任何支持CLS的语言所编译的组件访问 所有支持CLS并仅使用CLS中的语言特征的组件被称为符合 CLS 的组件 设计公用语言规范时遇到的一个最主要的挑战是选择适当的语言特性子集的大小 它应具有完全的表达能力 又应足够小 使得所有的语言能够容纳它 由于 CLS是关于语言互用性的规范 它的规则仅应用于外部可见的条目中 CLS 假设语言间的互操作性仅在语言集合的边界发生交叉时才是重要的 也就是说 在单一的语言集中对于编程技术的使用没有任何限制 CLS 的规则仅作用于在定义它们的语言集合之外仍然可见的项上 这样就大大缩小了 CLS 的范围 减轻了系统的负担 在 CLS 中是用 System.CLSCompliantAtribute 类来标识一个集合或者类是否是符合CLS 规范的 在 System.CLSCompliantAtribute 的构造器中有一个 Boolean 型的返回值代表了与之相关联的项是否符合 CLS 规范 2.3 开 发 工 具 .NET 为使用与开发人员提供了功能强大 种类丰富的管理与开发工具 同时它们也是.NET 框架提供的服务 我们将它们列在下面 正是由于有了它们的支持.NET 才变得如此强大 1. Visual Studio.NET 是.NET 的核心开发工具 包括微软提供的各种开发语言其中有 Visual C# 2. Assembly Generation Utility (al.exe) 用来建立集合的工具 它能够将资源文件或 MSIL 格式的文件转换为带有内容清单的集合 3. Windows Forms ActiveX Control Importer (aximp.exe) 完成 COM 类库中类型定义的转换 使 ActiveX 控件能够在 Windows 窗口控件上使用 4. Code Access Security Policy Utility (caspol.exe) 在用户与机器水平上修改安全策略 page 18 page begin==================== 5. Software Publisher Certificate Test Utility (Cert2spc.exe) 用于从 X.509 证书中生成软件出版证明书 SPC 6. Certificate Manager Utility (certmgr.exe) 管理证书 证书信任列表和证书回收列表 7. Certificate Verification Utility (chktrust.exe) 检查证书签名的合法性 8. Runtime Debugger (cordbg.exe) 运行时调试器 是一个命令行程序 帮助开发人员发现和调试基于 CLR 的应用程序中的错误 9. Global Assembly Cache Utility (gacutil.exe) 允许你浏览与操纵全局集合缓存中内容的命令行程序 10. MSIL Assembler (ilasm.exe) MSIL 汇编程序 协助设计与实现 MSIL 生成器的程序 11. MSIL Disassembler (ildasm.exe) MSIL 反汇编程序 与 ilasm.exe 共同使用 将由 MSIL 代码产生的 Portable Executable 文件转换为文本文件 12. Instaler Utility (instalutil.exe) 用来安装与卸载服务资源 13. License Compiler (lc.exe) 产生可包含在可执行二进制文件中的二进制资源文件 14. Certificate Creation Utility (makecert.exe) 生成 X.509 证书与用于数字签名的公用与私有密钥 15. Permissions View Utility(permview.exe) 通过一个集合浏览许可集的工具 16. Peverify Utility(peverify.exe) 检查中间语言与元数据是否符合类型安全认证要求 17. Assembly Registration Tool(RegAsm.exe) 读取集合中的元数据并加上必要注册表入口信息 使得 COM 客户透明地建立 CLR 的类 18. Services Registration Tool (RegSvcs.exe) 服务注册工具 它完成执行以下功能装载与注册一个集合 为现有的 COM+1.0 应用生成 注册与安装类库 19. Resource File Generator Utility(ResGen.exe) 资源文件生成器 用来将文本文件和 XML 格式的资源文件转换为 CLR 的二进制文件 20. Secutil Utility(SecUtil.exe) 使得从集合中抽取的安全信息更加容易 21. Set Registry Utility(setreg.exe) 改变注册表中公开密钥密码系统的设置 22. Assembly Cache Viewer(shfusion.dl) 允许你使用 Windows 浏览器察看与操作全局集合缓存中的内容 23. File Signing Utility(signcode.exe) 为 PE (portable executable)文件做标记 赋予程序员在组件安全约束的基础上对安全性有更多的控制权 24. Shared Name Utility(Sn.exe) 帮助程序员以共享名称建立集合 25. Soapsuds Utility(SoapSuds.exe) 使用远程技术帮助你编译与 Web 服务相通信的客户应用 26. Isolated Storage Utility(storeadm.exe) 一种用来管理隔离存储区的命令行工具 27. Type Library Exporter(TlbExp.exe) 命令行程序 生成由集合名称指示的包含集合中公共类型定义的类库 page 19 page begin==================== 28. Type Library Importer (TlbImp.exe) 将 COM 类库中的类型定义转换为在 CLR中与元数据格式一致的类型定义 29. Web Service Utility(WebServiceUtil.exe) 帮助建立 ASP.NET Web 服务与客户 30. Windows Forms Class Viewer(wincv.exe) 能够在某种查找模式下快速查找类或者类序列的信息 31. Windows Forms Designer Test Container(windes.exe) 允许开发人员测试开发出的视窗窗体控件在设计时的行为 32. XML Schema Definition Tool(xsd.exe) XML 计划定义工具 2.4 小 结 本章解释了与.NET 有关的概念并简要介绍了一些相关的技术 在了解了.NET 的结构之后 我们重点讨论了公用语言运行时环境和公用语言规范 最后给出了.NET 开发工具的清单 在完成本章的学习之后 你已经了解了有关 C#运行环境的相关知识 这将为你深入学习 C#打下良好的基础 从下一章开始 我们将进入实际的编程实践中 您将会发现关于 C#的更多更有趣的东西复习题 1 .NET 的结构由哪四部分组成 2 请简要总结 CLR 的作用 3 可操控执行 的含义是什么 4 .NET 是怎样解决传统 Windows 程序设计中 DLL 的版本问题的 5 什么是 CLS 它的范围是怎样确定的 page 20 page begin==================== 第三章 编写第一个应用程序 介绍了 C#语言的这么多优点 您可能已经有些不耐烦了 好 那就让我们开始 C#的开发之路吧 本章介绍如何生成您的第一个 C#程序 这是一个最基本的 C#应用程序 程序中的代码在全书中将经常出现 我一直坚信 只有不断练习才是最好的学习方式 所以建议读者从本章开始 对书中所提供的程序示例 亲自进行编辑 编译和运行 在这个过程中 您将获得开发C#程序的有益经验 3.1 Welcome 程序 可以这么说 与用户没有任何交互的应用程序根本没有任何用处 病毒和黑客当然除外 然而即使是病毒程序的作者 也常常喜欢在自己得逞之后炫耀一番 学习任何一门语言 绝大多数情况下人们都是从输入输出开始的 第一个程序总是非常简单的 我们让用户通过键盘输入自己的名字 然后程序在屏幕上打印一条欢迎信息 程序的代码是这样的 程 程序 序清 清单单 3-1 using System; class Welcome { static void Main() { Console.WriteLine( Please enter your name: Console.ReadLine(); Console.WriteLine( Welcome to you! } } 您可以在任意一种编辑软件中完成上述代码的编写 然后把文件存盘 文件名叫做 Welcome.cs 典型的 C#源文件通常都是以 .cs 作为文件的扩展名 3.2 代 码 分 析 首先要提出的是 C#语言是大小写敏感的 这一点对于 C 和 C++程序员没什么问 page 21 page begin====================题 只是要提醒一下 VB 和 Delphi 的程序员 接下来让我为您逐条地分析上面的 C#程序语句3.2.1 名字空间 using System 表示导入名字空间 高级语言总是依赖于许多系统预定义的元素 如果您是 C 或 C++的程序员 那么您一定对使用#include 之类的语句来导入其它 C 或 C++源文件再熟悉不过了 C#中的含义与此类似 用于导入预定义的元素 这样在自己的程序中就可以自由地使用这些元素 如果没有导入名字空间的话 我们该怎么办呢 程序还能保持正确吗 答案是肯定的 那样的话 我们就必须把代码改写成下面的样子 程 程序 序清 清单 单 3-2 class Welcome { static void Main() { System.Console.WriteLine( Please enter your name: System.Console.ReadLine(); System.Console.WriteLine( Welcome to you! } } 也就是说 在每个 Console 前加上一个前缀 System. 这个小原点 . 表示 Console是作为 System 的成员而存在的 C#中抛弃了 C 和 C++中繁杂且极易出错的操作符像 :和 - 等 C#中的复合名字一律通过 . 来连接 System 是.Net 平台框架提供的最基本的名字空间之一 有关名字空间的详细使用方法我们将放在第十七章中详细介绍 在这里 只要我们学会怎样导入名字空间就足够了3.2.2 类和类的方法 让我们从写第一个程序时就记住 每个东西都必须属于一个类 如果您是 C 或 C++的程序员 请暂时忘掉那些全局变量 在程序的第二行 class Welcome 声明了一个类 类的名字叫做 Welcome 这个程序为我们所作的事情就是依靠它来完成的 和 C C++中一样 源代码块被包含在一对大括号 { 和 } 中 每一个右括号 } 总是和它前面离它最近的一个左括号 { 相配套 如果左括号 { 和右括号 }没有全部配套 那程序就是一个错误的程序 static void Main()表示类 Welcome 中的一个方法 方法总是为我们完成某件工作的 注意 在 C#程序中 程序的执行总是从 Main()方法开始的 一个程序中不允许出 page 22 page begin====================现两个或两个以上的 Main()方法 对于习惯了写 C 控制台程序的读者 请牢记 C#中Main()方法必须被包含在一个类中3.2.3 程序的输入和输出 程序所完成的输入输出功能都是通过 Console 来完成的 Console 究竟是什么呢它是在名字空间中 System 已经为我们定义好的一个类 这里我们不用管它是怎么完成工作的 只要使用它就可以了 上面的代码中 类 Console 为我们展现了两个最基本的方法 WriteLine 和 ReadLineConsole.ReadLine 表示接受输入设备输入 Console. WriteLine 则用于在输出设备上输出 我们再为读者介绍 Console 中用于输入输出的另两个方法 Read 和 Write 它们和ReadLine 与 WriteLine 的不同之处在于 ReadLine 和 WriteLine 执行时相当在显示时多加了一个回车键 而使用 Read 和 Write 时则光标不会自动转移到下一行 让我们再对例子程序进行扩展 使得用户的输入对输出产生作用 程 程序序清 清单 单 3-3 using System; class Welcome { static void Main() { Console.WriteLine( Please enter your name: string name = Console.ReadLine(); Console.WriteLine( Welcome to you,{0}! ,name); } } 我们用到了 string name = Console.ReadLine()这条语句 其中 string name 表示声明一个字符串类型的变量 name 系统定义的 Console 类提供的方法 ReadLine()的返回值类型为 string 所以 这句话表示从输入设备读取一个字符串 并把读取的值赋予变量 name 再来看一下程序的最后一条输出语句 Console.WriteLine( Welcome to you,{0}! ,name); 这条语句表示在屏幕上对输出的字符串进行格式化 其中表示用方法的第二个参数来替代格式化后字符串相应的位置 对字符串进行格式化的参数可以是一个字符串也可以是一个字符 或者是一个整数 等等 采用这种方式最多可以格式化三个变量比如 int x = 3; string name1 = Mike page 23 page begin==================== string name2 = John Console.WriteLine( Welcome to you {0} times,{1} and {2}! ,x,name1,name2); 和绝大多数编程语言一样 C#提供了字符串类型 string 它与 C 中的 MFC 为我们提供的类十分类似 C#中的 string 类型是一个引用类型 引用类型在第四章中我们有详细说明 为标准字符集 利用 string 可以方便地对字符串进行连接 截断等操作比如 string s = Good + Morning char x = s[3]; 例子演示了字符串 s 由两个字符串 Good 和 Morning 相加得到 字符串还可以通过下标进行索引 得到一个字符 上面的例子中字符 x 的值为 o 所以 源程序 3-4 和源程序 3-3 的作用没什么区别 程 程序 序清 清单 单 3-4 using System; class Welcome { static void Main() { Console.WriteLine( Please enter your name: string message = Welcome to you + Console.ReadLine(); Console.WriteLine(mesage); } } 3.3 运 行 程 序 理解了源程序中每条代码的具体含义之后 下一步要做的就是让这个程序真正能够运行 不过对源代码即使还有不明白的地方也没有关系 在后续章节的学习中 您最终会熟练掌握这些概念的 如果您的电脑上安装了 Visual Studio .Net 则可以在集成开发环境 IntegratedDeveloper Environment IDE 中直接选择快捷键或菜单命令 编译并执行源文件 如果您不具备这个条件 那么您至少需要安装 Microsoft .Net Framework SDK 这样才能够不妨碍您在本书中继续学习 C#语言 实际上 .Net 平台内置了 C#的编译器下面让我们使用这个微软提供的命令行编译器对我们的程序进行编译 启动一个命令行提示符 在屏幕上输入一行命令 csc welcome.cs page 24 page begin==================== 我们假设您已经将 welcome.cs 文件保存在当前目录下 如果一切正常 welcome.cs文件将被编译 运行 屏幕上出现一行字符 提示您输入姓名 Please enter your name: 输入任意个字符并按下回车键 屏幕将打印出欢迎信息 Welcome to you! 注意 和到目前为止我们使用过的绝大多数编译器不同 在 C#中 编译器只执行编译这个过程 而在 C 和 C++中要经过编译和链接两个阶段 换而言之 C#源文件并不被编译为目标文件 .obj 而是直接生成可执行文件 .exe 或动态链接库 .dllC#编译器中不需要包含链接器 编译选项 我们可以灵活地使用 .Net 平台提供的命令行编译器的不同选项 选择不同的编译方式 从而灵活地对编译进行控制 例如 如果我们希望对源文件 Welcome.cs 进行编译 生成名为 MyWelcome.exe 的可执行文件 我们可以采用这样的命令 csc/out: MyWelcome.exe Welcome.cs 如果我们并不需要一个可执行文件 而仅仅是希望简单地检查源文件中是否存在语法错误 则命令可以写成 csc/nooutput: Welcome.cs 如果不知道各个选项的具体含义 可以通过求助来获得 csc/? 为方便读者 我们在表 3-1 中按字母排序的顺序列出了命令行编译器 csc 常用的参数及其用途 更详细的信息请参阅 C#联机帮助文档 表 3-1 命令行编译器选项 选项 作用 @ 指定响应文件 /? 列出编译命令选项 /addmodule 指定一个或多个模块作为装配的一部分 /baseaddress 指定载入动态链接库的首选地址 /bugreport 生成一个报告文件 其中包含程序 Bug 的详细信息 /checked 指定算术运算的溢出是否会导致程序在运行时抛出一个异常 /codepage 指定编译的所有源文件所使用的代码页 /debug 给出调试信息 /define 定义预处理程序的符号 /doc 由文件注释生成 XML 文件 /fulpaths 指定输出的绝对路径 /help 列出编译命令选项 /incremental 允许对源文件进行递增式编译 /linkresource 在装配时链接指定的 NET 资源 page 25 page begin==================== /main 指定 Main 方法所处的位置 /nologo 编译过程中不显示编译信息 /nooutput 编译源文件但不输出 /nostdlib 不导入标准库 (mscorlib.dl). 续表 选项 作用 /nowarn 编译过程中不生成警告信息 /optimize 指定编译时是否进行优化 /out 指定输出文件 /recurse 搜索子目录以寻找源文件 /reference 从包含装配的文件中导入元数据 /resource 把 NET 资源内嵌到输出文件 /target 指定输出文件的格式 /target:exe 输出文件为 exe 可执行文件 /target:library 输出文件为链接库 /target:module 输出文件为模块 /target:winexe 输出文件为 winexe 可执行文件 /unsafe 允许编译使用了不安全关键字的代码 /warn 设置警告级别 /warnaserror 把警告信息作为错误看待 /win32icon 把 .ico 图标文件插入到输出文件 /win32res 把 Win32 资源插入到输出文件 .4 添 加 注 释 应用程序并不是只要你自己一个人能看懂就够了 不管以前计算机老师或者是编程书籍是否已经告诫过 这里我还要再一次强调 养成良好的代码注释的习惯 这是一名优秀的程序员必备的条件之一 代码注释不会浪费您的编程时间 它只会提高您的编程效率 使您的程序更加清晰 完整 友好 注释的方式和 ++没有区别 每一行中双斜杠 后面的内容 以及在分割符 和 之间的内容都将被编译器忽略 这样 我们就可以采用 进行单行注释 采用分割符 和进行多行注释 让我们对 Welcome 程序加上注释 程 程序序清 清单 单 3-5 源文件 welcome.cs / 说明 这里是我的第一个 程序 page 26 page begin==================== using System; class Welcome { static void Main() { Console.WriteLine( Please enter your name: 要求用户输入姓名 Console.ReadLine(); 读取用户输入 Console.WriteLine( Welcome to you! 本行代码用于打印欢迎信息 您可以在这里添加自己的代码 程序在这里结束 } } 上面的注释似乎有些小题大做 但它毕竟说明了 中注释的使用方法 下面是对 程序进行注释时要注意的两个问题 首先 避免在 之后的单行注解中使用反斜杠符号 \\ 因为反斜杠符号 \\在 中是一个续行符 这样做往往会导致你所不希望的结果出现 例如 当你写了类似于下面的代码 Console.WriteLine( The result is:{0} , / \\ 150 ); 在编译这段代码时 表示逻辑上同一行剩余的所有文字被作为注释看待而续行符 \\ 则将这一行同下一行连接起来 那么第二行也被作为注释的一部分 这时编译器找不到与第一行的左括号 相匹配的右括号 因此编译出错 其次 分割符 和 之间的注释不能有嵌套注释 这是因为编译器从遇到第一个分割符 开始 将忽略下一个 直到遇上下

\"\"7.61MB

新版Android开发教程.rar

2010-12-14

----------------------------------- Android 编程基础1封面----------------------------------- Android 编程基础2开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance Alliance Alliance Alliance什么是开放手机联盟?开放手机联盟, Open Handset Alliance :是美国 Google 公司与 2007 年 11 月 5 日宣布组建的一个全球性的联盟组织。这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数量已经达到了 43 家。移动手机联盟创始成员:Aplix 、 Ascender 、 Audience 、 Broadcom 、中国移动、 eBay 、 Esmertec 、谷歌、宏达电、英特尔、 KDDI 、Living Image 、 LG 、 Marvell 、摩托罗拉、 NMS 、 NTT DoCoMo 、 Nuance 、 Nvidia 、 PacketVideo 、高通、三星 、SiRF 、 SkyPop 、 Sonic Network 、 Sprint Nextel 、 Synaptics 、 TAT 、意大利电信、西班牙电信、德州仪器、 T-M obile和 Wind River 。Mobile Mobile Mobile Mobile Operators Operators Operators Operators 移动运营商类China Mobile Communications Corporation 中国移动通信KDDI CORPORATION 日本 KDDI 电信NTT DoCoMo, Inc. 日本多科莫电信SOFTBANK MOBILE Corp. 日本软银移动Sprint Nextel( 美国 )T-Mobile( 德国 )Telecom Italia( 意大利 )Telef nica( 西班牙 )Vodafone 沃达丰电信China Unicom 中国联通Semiconductor Semiconductor Semiconductor Semiconductor Companies Companies Companies Companies 半导体制造公司AKM Semiconductor IncAudienceARMAtheros CommunicationsBroadcom Corporation( 博通 )Ericsson ( 爱立信公司 )Intel Corporation ( 英特尔公司 )Marvell Semiconductor, Inc. ( 收购了 intel 手机芯片部门的公司 )----------------------------------- Android 编程基础3NVIDIA Corporation ( 英伟达公司 )Qualcomm Inc.( 高通公司 )SiRF Technology Holdings, Inc.( 知名 GPS 芯片制造商 )Synaptics, Inc.Texas Instruments Incorporated ( 德州仪器 )Handset Handset Handset Handset Manufacturers Manufacturers Manufacturers Manufacturers 电话制造商ASUSTeK Computer Inc. 华硕Garmin International, Inc.HTC Corporation ( 多普达的母公司 ) 宏达电子Huawei Technologies 华为科技LG Electronics, Inc. 乐金电子Motorola, Inc. 摩托罗拉Samsung Electronics 三星电子Sony Ericsson 索尼爱立信Toshiba Corporation 东芝公司lenovo 联想移动联盟成员: Software Software Software Software Companies Companies Companies Companies 软件提供公司Ascender Corp.eBay Inc.EsmertecGoogle Inc.LivingImage LT

\"\"142KB

12道必须掌握的数据库面试题(sql server 2008)

2013-05-31

这是一份有点难度的数据库面试题,会这12道,面试数据库题目基本没问题

\"\"642KB

windows xp,vista,win7启动修复;自动修复XP/VISTA/WIN7系统引导

2011-01-18

本工具多次测试均未出现问题,可以使用,如果发现自己无法使用,请先看下面介绍与说明 谢谢!!感谢驴友yxrsys,在verycd发布资源非安装软件,直接双击运行,傻瓜式修复,可运行于32位和64位系统和WINPE系统程序根据当前系统non-Unicode设置自动显示中/英界面 quot;自动修复 quot;自动判断和系统启动有关的条件并自动修复程序支持的盘符上的NT系统启动,无需用户手工干预 quot;高级修复 quot;只供特殊需要的朋友,参看下面应用实例中的高级修复部分PE中自动判断PE环境,单硬盘可以直接 quot;自动修复 quot;,如多硬盘在PE中修复时推荐使用 quot;高级 quot;修复选择你作为系统引导的盘符适用范围:

\"\"27.37MB

Java经典编程300例(code)

2013-01-09

目 录第1章 Java语言概述 1实例001 输出 Hello World 2实例002 输出控制台传递的参数 2实例003 输出由 * 组成的三角形 3实例004 输出符号表情 5第2章 Eclipse开发工具 6实例005 下载并运行Eclipse工具 7实例006 为Eclipse安装汉化包 8实例007 使用Eclipse注释代码 10实例008 使用Eclipse格式化代码 11实例009 安装WindowBuilder插件 12实例010 开发计算器界面 14第3章 Java语言基础 15实例011 输出错误信息与调试信息 16实例012 从控制台接收输入字符 16实例013 重定向输出流实现程序日志 17实例014 自动类型转换与强制类型转换 19实例015 加密可以这样简单(位运算) 20实例016 用三元运算符判断奇数和偶数 21实例017 不用乘法运算符实现2 16 22实例018 实现两个变量的互换(不借助第3个变量) 23第4章 流程控制 25实例019 判断某一年是否为闰年 26实例020 验证登录信息的合法性 27实例021 为新员工分配部门 28实例022 用switch语句根据消费金额计算折扣 29实例023 判断用户输入月份的季节 31实例024 使用while循环语句与自增运算符循环遍历数组 33实例025 使用for循环输出杨辉三角形 34实例026 使用嵌套循环在控制台上输出九九乘法表 35实例027 使用while循环计算1+1/2!+1/3! 1/20! 36实例028 使用for循环输出空心的菱形 38实例029 终止循环体 39实例030 循环体的过滤器 41第5章 数组及其常用操作 43实例031 获取一维数组的最小值 44实例032 将二维数组中的行列互换 45实例033 利用数组随机抽取幸运观众 47实例034 用数组设置JTable表格的列名与列宽 49实例035 使用按钮控件数组实现计算器界面 51实例036 通过复选框控件数组实现添加多个复选框控件 52实例037 使用选择排序法对数组排序 53实例038 使用冒泡排序法对数组排序 55实例039 使用快速排序法对数组排序 57实例040 使用直接插入法对数组排序 59实例041 使用sort()方法对数组排序 61实例042 反转数组中元素的顺序 63第6章 面向对象入门 65实例043 自定义图书类 66实例044 温度单位转换工具 67实例045 成员变量的默认初始化值 68实例046 单例模式的应用 69实例047 汉诺塔问题求解 70实例048 编写同名的方法 71实例049 构造方法的应用 72实例050 统计图书的销售量 73实例051 两只完全相同的宠物 74实例052 重新计算对象的哈希码 76实例053 使用字符串输出对象 77实例054 Java对象的假克隆 78实例055 Java对象的浅克隆 80实例056 Java对象的深克隆 82实例057 序列化与对象克隆 84实例058 深克隆效率的比较 87第7章 面向对象进阶 89实例059 经理与员工的差异 90实例060 重写父类中的方法 92实例061 计算几何图形的面积 93实例062 简单的汽车销售商场 95实例063 使用Comparable接口自定义排序 96实例064 策略模式的简单应用 98实例065 适配器模式的简单应用 100实例066 普通内部类的简单应用 102实例067 局部内部类的简单应用 103实例068 匿名内部类的简单应用 104实例069 静态内部类的简单应用 105实例070 实例化Class类的几种方式 107实例071 查看类的声明 108实例072 查看类的成员 110实例073 查看内部类信息 112实例074 动态设置类的私有域 113实例075 动态调用类中方法 115实例076 动态实例化类 116实例077 创建长度可变的数组 117实例078 利用反射重写toString()方法 119第8章 字符串与包装类 121实例079 将数字格式化为货币字符串 122实例080 货币金额大写格式 123实例081 String类格式化当前日期 125实例082 字符串大小写转换 126实例083 字符与Unicode码

\"\"1.82MB

200个经典C程序【源码】

2013-08-08

包含以下内容:第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机)界面 012 用一维数组统计学生成绩 013 用二维数组实现矩阵转置 014 求解二维数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021 求解钢材切割的最佳订单 022 通过指针比较整数大小 023 指向数组的指针 024 寻找指定元素的指针 025 寻找相同元素的指针 026 阿拉伯数字转换为罗马数字 027 字符替换 028 从键盘读入实数 029 字符行排版 030 字符排列 031 判断字符串是否回文 032 通讯录的输入输出 033 扑克牌的结构表示034 用 结构 统计学生成绩 035 报数游戏 036 模拟社会关系 037 统计文件的字符数 038 同时显示两个文件的内容 039 简单的文本编辑器 040 文件的字数统计程序 041 学生成绩管理程序 第二部分 数据结构篇 042 插入排序 043 希尔排序 044 冒泡排序 045 快速排序 046 选择排序 047 堆排序 048 归并排序 049 基数排序 050 二叉搜索树操作 051 二项式系数递归 052 背包问题 053 顺序表插入和删除 054 链表操作(1) 055 链表操作(2) 056 单链表就地逆置 057 运动会分数统计 058 双链表 059 约瑟夫环 060 记录个人资料 061 二叉树遍利 062 浮点数转换为字符串 063 汉诺塔问题 064 哈夫曼编码 065 图的深度优先遍利 066 图的广度优先遍利067 求解最优交通路径 068 八皇后问题069 骑士巡游 070 用栈设置密码 071 魔王语言翻译 072 火车车厢重排 073 队列实例 074 K阶斐波那契序列 第三部分 数值计算与趣味数学篇 075 绘制余弦曲线和直线的迭加076 计算高次方数的尾数 077 打鱼还是晒网 078 怎样存钱以获取最大利息 079 阿姆斯特朗数 080 亲密数 081 自守数 082 具有abcd=(ab+cd)2性质的数 083 验证歌德巴赫猜想084 素数幻方 085 百钱百鸡问题 086 爱因斯坦的数学题 087 三色球问题088 马克思手稿中的数学题 089 配对新郎和新娘 090 约瑟夫问题091 邮票组合 092 分糖果 093 波瓦松的分酒趣题 094 求 的近似值 095 奇数平方的有趣性质096 角谷猜想 097 四方定理 098 卡布列克常数 099 尼科彻斯定理 100 扑克牌自动发牌 101 常胜将军 102 搬山游戏103 兔子产子(菲波那契数列) 104 数字移动 105 多项式乘法 106 产生随机数 107 堆栈四则运算 108 递归整数四则运算 109 复平面作图 110 绘制彩色抛物线 111 绘制正态分布曲线 112 求解非线性方程 113 实矩阵乘法运算114 求解线性方程 115 n阶方阵求逆 116 复矩阵乘法 117 求定积分 118 求满足特异条件的数列 119 超长正整数的加法 第四部分 图形篇 120 绘制直线 121 绘制圆 122 绘制圆弧 123 绘制椭圆124 设置背景色和前景色125 设置线条类型 126 设置填充类型和填充颜色 127 图形文本的输出 128 金刚石图案129 飘带图案 130 圆环图案 131 肾形图案 132 心脏形图案 133 渔网图案 134 沙丘图案135 设置图形方式下的文本类型 136 绘制正多边形 137 正六边形螺旋图案 138 正方形螺旋拼块图案139 图形法绘制圆 140 递归法绘制三角形图案 141 图形法绘制椭圆 142 抛物样条曲线 14

\"\"903B

取整数的几种方法

1969-12-15

nbsp;取整数的几种方法 nbsp;

\"\"156.89MB

深入浅出MySQL数据库开发、优化与管理维护

1969-12-17

第1部分 基础篇 第1章 MySQL的安装与配置 1.1 MySQL的下载 1.1.1 在Windows平台下下载MySQL 1.1.2 在Linux平台下下载MySQL 1.2 MySQL的安装 1.2.1 在Windows平台下安装MySQL 1.2.2 在Linux平台下安装MySQL 1.3 MySQL的配置 1.3.1 Windows平台下配置MySQL 1.3.2 Linux平台下配置MySQL 1.4 启动和关闭MySQL服务 1.4.1 在Windows平台下启动和关闭 MySQL服务 1.4.2 在Linux平台下启动和关闭MySQL服务 1.5 小结 显示全部信息第1部分 基础篇 第1章 MySQL的安装与配置 1.1 MySQL的下载 1.1.1 在Windows平台下下载MySQL 1.1.2 在Linux平台下下载MySQL 1.2 MySQL的安装 1.2.1 在Windows平台下安装MySQL 1.2.2 在Linux平台下安装MySQL 1.3 MySQL的配置 1.3.1 Windows平台下配置MySQL 1.3.2 Linux平台下配置MySQL 1.4 启动和关闭MySQL服务 1.4.1 在Windows平台下启动和关闭MySQL服务 1.4.2 在Linux平台下启动和关闭MySQL服务 1.5 小结 第2章 SQL基础 2.1 SQL简介 2.2 (My)SQL使用入门 2.2.1 SQL分类 2.2.2 DDL语句 2.2.3 DML语句 2.2.4 DCL语句 2.3 帮助的使用 2.3.1 按照层次看帮助 2.3.2 快速查阅帮助 2.3.3 常用的网络资源 2.4 小结 第3章 MySQL支持的数据类型 3.1 数值类型 3.2 日期时间类型 3.3 字符串类型 3.3.1 CHAR和VARCHAR类型 3.3.2 BINARY和VARBINARY类型 3.3.3 ENUM类型 3.3.4 SET类型 3.4 小结 第4章 MySQL中的运算符 4.1 算术运算符 4.2 比较运算符 4.3 逻辑运算符 4.4 位运算符 4.5 运算符的优先级 4.6 小结 第5章 常用函数 5.1 字符串函数 5.2 数值函数 5.3 日期和时间函数 5.4 流程函数 5.5 其他常用函数 5.6 小结 第6章 图形化工具的使用 6.1 MySQLAdministrator 6.1.1 连接管理 6.1.2 健康检查 6.1.3 备份管理 6.1.4 Catalogs 6.2 MySQLQueryBrower 6.3 phpMyAdmin 6.3.1 数据库管理 6.3.2 数据库对象管理 6.3.3 权限管理 6.3.4 导入导出数据 6.4 小结 第2部分 开发篇 第7章 表类型(存储引擎)的选择 7.1 MySQL存储引擎概述 7.2 各种存储引擎的特性 7.2.1 MyISAM 7.2.2 InnoDB 7.2.3 MEMORY 7.2.4 MERGE 7.3 如何选择合适的存储引擎 7.4 小结 第8章 选择合适的数据类型 8.1 CHAR与VARCHAR 8.2 TEXT与BLOB 8.3 浮点数与定点数 8.4 日期类型选择 8.5 小结 第9章 字符集 9.1 字符集概述 9.2 Unicode简述 9.3 汉字及一些常见字符集 9.4 怎样选择合适的字符集 9.5 MySQL支持的字符集简介 9.6 MySQL字符集的设置 9.6.1 服务器字符集和校对规则 9.6.2 数据库字符集和校对规则 9.6.3 表字符集和校对规则 9.6.4 列字符集和校对规则 9.6.5 连接字符集和校对规则 9.7 字符集的修改步骤 9.8 小结 第10章 索引的设计和使用 10.1 索引概述 10.2 设计索引的原则 10.3 BTREE索引与HASH索引 10.4 小结

\"\"255KB

JAVA程序员简历模板(最新版)

2008-11-17

JAVA程序员简历模板 JAVA程序员简历模板

\"\"82.12MB

WEB安全测试.pdf

2012-12-13

英文版:Web Security Testing Cookbook: Systematic Techniques to Find Problems Fast内容简介《Web安全测试》内容简介:在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。《Web安全测试》中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的 可以完美地集成到你的常规测试套装中。《Web安全测试》中的秘诀所覆盖的基础知识包括了从观察客户端和服务器之间的消息到使用脚本完成登录并执行Web应用功能的多阶段测试。在《Web安全测试》的最后,你将能够建立精确定位到Ajax函数的测试,以及适用于常见怀疑对象(跨站式脚本和注入攻击)的大型多级测试。

\"\"632KB

华为_ENSP软件说明

2013-07-02

全球领先的信息与通信解决方案供应商华为,近日面向全球ICT从业者,以及有兴趣掌握ICT相关知识的人士,免费推出其图形化网络仿真工具平台 eNSP。该平台通过对真实网络设备的仿真模拟,帮助广大ICT从业者和客户快速熟悉华为数通系列产品,了解并掌握相关产品的操作和配置、故障定位方法,具备和提升对企业ICT网络的规划、建设、运维能力,从而帮助企业构建更高效,更优质的企业ICT网络。

\"\"4.57MB

购物网站系统源代码网页模板正式版

2009-12-03

网上商城购物网站系统源代码,网上开店系统网页模板正式版,您还在为苦苦寻找一套适合的购物系统而烦恼吗?您是否觉得单一色彩、风格的购物系统已经让您厌倦不堪?您是否想过只须用鼠标轻轻一点,整站风格即会变幻无穷? 网络电子商务购物网站自助建站管理系统源码正式版 首次引入模板,与以往程序大不相同,网店自助建站管理系统超漂亮正式版包括网站风格的商业模板,模板风格变换无穷,颜色、色调各不相同,适合各行各业开店使用! 网络电子商务购物网站自助建站管理系统源码,网店自助建站管理系统超漂亮正式版,网上购物网站管理系统超漂亮正式版,由致力于电子商务网上购物网站自助建站管理系统正式版的http://www.fdkjgz.com开发,助从事电子商务,网上销售购物的创业者成功。网店自助建站管理系统超漂亮正式版,适合电脑,软件,网络,办公设备,笔记本电脑电子商务商城,专用配件,手机,通讯设备,卡,移动联通充值中心购物网站模板,购物网模板,购物网页模板,网上购物网站模板,网上购物模板,免费购物网站模板,购物系统模板,购物模板下载,购物网站模板下载,韩国购物网站模板,购物模板素材,购物车模板,php购物网站模板,网上购物系统,网上购物系统论文,网络购物系统,在线购物系统,免费购物系统,网域网络购物系统,asp购物系统,网域网上购物系统,购物车系统,asp网上购物系统,IP长途,数码相机,摄像机,图形冲印,随身视听电子商务商城购物系统,音响,耳机,运动,健身,运动明星网域商城购物系统,网上购物系统设计,网域购物系统,购物系统,网上购物系统下载,jsp网上购物系统,网上商城购物系统,php购物系统,免费网上购物系统,网上购物系统流程图,电子购物系统,网上购物系统分析,购物系统论文,购物网站系统,在线购物系统概述,网上购物管理系统,购物系统下载,网上购物系统的设计,购物系统,网络购物系统论文,网上购物系统源码,乐器,户外、军品电子商务商城购物系统、旅游、机票,网络游戏虚拟商品交易区,电玩,动漫,Cosplay,周边,居家日用,装饰,文具,园艺,邮币,古董电视购物系统,jsp购物系统,网上购物系统,网域网络购物系统,网上购物系统源代码,商城购物系统,超市购物系统,购物系统模板,net网上购物系统,购物系统免费版,购物系统源码,网上购物系统破解版, 网络电子商务购物网站自助建站管理系统源码,电子商务网上购物网站自助建站管理系统,网络时代,一个电子商务的时代,一个创造财富奇迹的时候,你想建一个网上购物系统,网络购物系统,在线购物系统,商城购物系统 ,网络购物系统吗,你想用这个来创业吗? 购物系统,电子商务购物网站自助建站管理系统,为你创造了软件的条件,本系统带购物车系统,asp语言编写的,最流行通用简单的购物系统,网上购物系统,利用SQL版电子商务购物网站自助建站管理系统,建立一个专业的网上购物网站,网上购物系统,让你的客户在网上购物中心,进行网上购物,本系统是最好的网上购物的网站,用本程序建立之网上购物网站大全,上海,北京,深圳,广州,香港,国外网上购物网站系统很多是在此基础上完成的,我们将打造最好,最大的网上购物网站.你不用在搜索,网上购物网站模板,免费购物网站模板,韩国购物网站模板,欧美购物网站模板,购物网页模板,购物模板,购物模板下载,网站模板,网站模板下载,因为本系统都已经为你做到了, 购物网源码,购物网站源码,购物车源码,asp购物车源码,jsp购物车源码,购物系统源码,asp购物车源码下载,asp.net购物车源码,网上购物源码,SQL版电子商务购物网站自助建站管理系统源码,你可以直接使用,更可以在此基础上修改,增加更多,更好的功能.如不会本机调试本系统,请查看《IIS安装使用说明书》,本系统程序分电子商务购物网站管理系统通用版,清爽版,多风格版,sql数据库版. 网上购物系统功能,多用户购物系统,网域网上购物系统,网吧购物系统,网上购物系统 介绍,asp购物车系统,java网上购物系统,免费 网络购物系统,购物系统设计,网上购物系统意义,jsp购物车系统,电脑购物系统,网上购物系统的构建,购物系统 html,免费下载购物系统,简单购物系统,多用户网上购物系统,字画,收藏,汽车,摩托,自行车,家庭装修,五金工具网上购物系统,在线购物系统,购物系统,安防报警,个性定制,淘宝卖家服务,珠宝首饰,流行饰品,珠宝配件购物软件,电子商务购物,电子商务商城购物,品牌手表,流行手表,眼镜,彩妆,香水,护肤,美体,女士箱包,鞋帽,配件,女装,女士精品,男装asp免费购物系统,网上购物系统结构,淘宝购物系统,在线购物系统论文,asp简单购物系统,校园购物系统,网上购物系统的特点,asp,net 购物系统,网上购物系统的发展,网上购物系统发展,网上购物系

\"\"47.87MB

Linux命令行与shell脚本编程大全(第2版)

2014-02-20

声明:本书是完整的影印版,欢迎下载学习交流~第一部分 Linux 命令行第1章 初识Linux shell1.1 什么是Linux1.1.1 深入探究Linux内核1.1.2 GNU工具链1.1.3 Linux桌面环境1.2 Linux发行版1.2.1 核心Linux发行版1.2.2 专业Linux发行版1.2.3 Linux LiveCD1.3 小结第2章 走进shell2.1 终端模拟2.1.1 图形功能2.1.2 键盘2.2 terminfo数据库2.3 Linux控制台2.4 xterm终端2.4.1 命令行参数2.4.2 xterm主菜单2.4.3 VT选项菜单2.4.4 VT字体菜单2.5 Konsole终端2.5.1 命令行参数2.5.2 标签式窗口会话2.5.3 配置文件2.5.4 菜单栏2.6 GNOME Terminal2.6.1 命令行参数2.6.2 标签2.6.3 菜单栏2.7 小结第3章 基本的bash shell命令3.1 启动shell3.2 shell提示符3.3 bash手册3.4 浏览文件系统3.4.1 Linux文件系统3.4.2 遍历目录3.5 文件和目录列表3.5.1 基本列表功能3.5.2 修改输出信息3.5.3 完整的参数列表3.5.4 过滤输出列表3.6 处理文件3.6.1 创建文件3.6.2 复制文件3.6.3 链接文件3.6.4 重命名文件3.6.5 删除文件3.7 处理目录3.7.1 创建目录3.7.2 删除目录3.8 查看文件内容3.8.1 查看文件统计信息3.8.2 查看文件类型3.8.3 查看整个文件3.8.4 查看部分文件3.9 小结第4章 更多的bash shell命令4.1 监测程序4.1.1 探查进程4.1.2 实时监测进程4.1.3 结束进程4.2 监测磁盘空间4.2.1 挂载存储媒体4.2.2 使用df命令4.2.3 使用du命令4.3 处理数据文件4.3.1 排序数据4.3.2 搜索数据4.3.3 压缩数据4.3.4 归档数据4.4 小结第5章 使用Linux环境变量5.1 什么是环境变量5.1.1 全局环境变量5.1.2 局部环境变量5.2 设置环境变量5.2.1 设置局部环境变量5.2.2 设置全局环境变量5.3 删除环境变量5.4 默认shell环境变量5.5 设置PATH环境变量5.6 定位系统环境变量5.6.1 登录shell5.6.2 交互式shell5.6.3 非交互式shell5.7 可变数组5.8 使用命令别名5.9 小结第6章 理解Linux文件权限6.1 Linux的安全性6.1.1 /etc/passwd文件6.1.2 /etc/shadow文件6.1.3 添加新用户6.1.4 删除用户6.1.5 修改用户6.2 使用Linux组6.2.1 /etc/group文件6.2.2 创建新组6.2.3 修改组6.3 理解文件权限6.3.1 使用文件权限符6.3.2 默认文件权限6.4 改变安全性设置6.4.1 改变权限6.4.2 改变所属关系6.5 共享文件6.6 小结第7章 管理文件系统7.1 探索Linux文件系统7.1.1 基本的Linux文件系统7.1.2 日志文件系统7.1.3 扩展的Linux日志文件系统7.2 操作文件系统7.2.1 创建分区7.2.2 创建文件系统7.2.3 如果出错了7.3 逻辑卷管理器7.3.1 逻辑卷管理布局7.3.2 Linux中的LVM7.3.3 使用Linux LVM7.4 小结第8章 安装软件程序8.1 包管理基础8.2 基于Debian的系统8.2.1 用aptitude管理软件包8.2.2 用aptitude安装软件包8.2.3 用aptitude更新软件8.2.4 用aptitude卸载软件8.2.5 aptitude库8.3 基于Red Hat的系统8.3.1 列出已安装包8.3.2 用yum安装软件8.3.3 用yum更新软件8.3.4 用yum卸载软件8.3.5 处理损坏的包依赖关系8.3.6 yum软件库8.4 从源码安装8.5 小结第9章 使用编辑器9.1 Vim编辑器9.1.1 Vim基础9.1.2 编辑数据9.1.3 复制和粘贴9.1.4 查找和替换9.2 Emacs编辑器9.2.1 在控制台上使用Emacs9.2.2 在X Window中使用Emacs9.3 KDE系编辑器9.3.1 KWrite编辑器9.3.2 Kate编辑器9.4 GNOME编辑器9.4.1 启动gedit9.4.2 基本的gedit功能9.4.3 设定偏好设置9.5 小结第二部分 shell脚本编程基础第10章 构建基本脚本10.1 使用多个命令10.2 创建shell脚本文件10.3 显示消息10.4 使用变量10.4.1 环境变量10.4.2 用户变量10.4.3 反引号10.5 重定向输入和输出10.5.1 输出重定向10.5.2 输入重定向10.6 管道10.7 执行数学运算10.7.1 expr命令10.7.2 使用方括号10.7.3 浮点解决方案10.8 退出脚本10.8.1 查看退出状态码10.8.2 exit命令10.9 小结第11章 使用结构化命令11.1 使用if-then语句11.2 if-then-else语句11.3 嵌套if11.4 test命令11.4.1 数值比较11.4.2 字符串比较11.4.3 文件比较11.5 复合条件测试11.6 if-then的高级特性11.6.1 使用双尖括号11.6.2 使用双方括号11.7 case命令11.8 小结第12章 更多的结构化命令12.1 for命令12.1.1 读取列表中的值12.1.2 读取列表中的复杂值12.1.3 从变量读取列表12.1.4 从命令读取值12.1.5 更改字段分隔符12.1.6 用通配符读取目录12.2 C语言风格的for命令12.2.1 C语言的for命令12.2.2 使用多个变量12.3 while命令12.3.1 while的基本格式12.3.2 使用多个测试命令12.4 until命令12.5 嵌套循环12.6 循环处理文件数据12.7 控制循环12.7.1 break命令12.7.2 continue命令12.8 处理循环的输出12.9 小结第13章 处理用户输入13.1 命令行参数13.1.1 读取参数13.1.2 读取程序名13.1.3 测试参数13.2 特殊参数变量13.2.1 参数计数13.2.2 抓取所有的数据13.3 移动变量13.4 处理选项13.4.1 查找选项13.4.2 使用getopt命令13.4.3 使用更高级的getopts13.5 将选项标准化13.6 获得用户输入13.6.1 基本的读取13.6.2 超时13.6.3 隐藏方式读取13.6.4 从文件中读取13.7 小结第14章 呈现数据14.1 理解输入和输出14.1.1 标准文件描述符14.1.2 重定向错误14.2 在脚本中重定向输出14.2.1 临时重定向14.2.2 永久重定向14.3 在脚本中重定向输入14.4 创建自己的重定向14.4.1 创建输出文件描述符14.4.2 重定向文件描述符14.4.3 创建输入文件描述符14.4.4 创建读写文件描述符14.4.5 关闭文件描述符14.5 列出打开的文件描述符14.6 阻止命令输出14.7 创建临时文件14.7.1 创建本地临时文件14.7.2 在/tmp目录创建临时文件14.7.3 创建临时目录14.8 记录消息14.9 小结第15章 控制脚本15.1 处理信号15.1.1 重温Linux信号15.1.2 产生信号15.1.3 捕捉信号15.1.4 捕捉脚本的退出15.1.5 移除捕捉15.2 以后台模式运行脚本15.2.1 后台运行脚本15.2.2 运行多个后台作业15.2.3 退出终端15.3 在非控制台下运行脚本15.4 作业控制15.4.1 查看作业15.4.2 重启停止的作业15.5 调整谦让度15.5.1 nice命令15.5.2 renice命令15.6 定时运行作业15.6.1 用at命令来计划执行作业15.6.2 计划定期执行脚本15.7 启动时运行15.7.1 开机时运行脚本15.7.2 在新shell中启动15.8 小结第三部分 高级shell脚本编程第16章 创建函数16.1 基本的脚本函数16.1.1 创建函数16.1.2 使用函数16.2 返回值16.2.1 默认退出状态码16.2.2 使用return命令16.2.3 使用函数输出16.3 在函数中使用变量16.3.1 向函数传递参数16.3.2 在函数中处理变量16.4 数组变量和函数16.4.1 向函数传数组参数16.4.2 从函数返回数组16.5 函数递归16.6 创建库16.7 在命令行上使用函数16.7.1 在命令行上创建函数16.7.2 在.bashrc文件中定义函数16.8 小结第17章 图形化桌面上的脚本编程17.1 创建文本菜单17.1.1 创建菜单布局17.1.2 创建菜单函数17.1.3 添加菜单逻辑17.1.4 整合shell脚本菜单17.1.5 使用select命令17.2 使用窗口17.2.1 dialog包17.2.2 dialog选项17.2.3 在脚本中使用dialog命令17.3 使用图形17.3.1 KDE环境17.3.2 GNOME环境17.4 小结第18章 初识sed和gawk18.1 文本处理18.1.1 sed编辑器18.1.2 gawk程序18.2 sed编辑器基础18.2.1 更多的替换选项18.2.2 使用地址18.2.3 删除行18.2.4 插入和附加文本18.2.5 修改行18.2.6 转换命令18.2.7 回顾打印18.2.8 用sed和文件一起工作18.3 小结第19章 正则表达式19.1 什么是正则表达式19.1.1 定义19.1.2 正则表达式的类型19.2 定义BRE模式19.2.1 纯文本19.2.2 特殊字符19.2.3 锚字符19.2.4 点字符19.2.5 字符组19.2.6 排除字符组19.2.7 使用区间19.2.8 特殊字符组19.2.9 星号19.3 扩展正则表达式19.3.1 问号19.3.2 加号19.3.3 使用花括号19.3.4 管道符号19.3.5 聚合表达式19.4 实用中的正则表达式19.4.1 目录文件计数19.4.2 验证电话号码19.4.3 解析邮件地址19.5 小结第20章 sed进阶20.1 多行命令20.1.1 next命令20.1.2 多行删除命令20.1.3 多行打印命令20.2 保持空间20.3 排除命令20.4 改变流20.4.1 跳转20.4.2 测试20.5 模式替代20.5.1 and符号20.5.2 替换单独的单词20.6 在脚本中使用sed20.6.1 使用包装脚本20.6.2 重定向sed的输出20.7 创建sed实用工具20.7.1 加倍行间距20.7.2 对可能含有空白行的文件加倍行间距20.7.3 给文件中的行编号20.7.4 打印末尾行20.7.5 删除行20.7.6 删除HTML标签20.8 小结第21章 gawk进阶21.1 使用变量21.1.1 内建变量21.1.2 自定义变量21.2 处理数组21.2.1 定义数组变量21.2.2 遍历数组变量21.2.3 删除数组变量21.3 使用模式21.3.1 正则表达式21.3.2 匹配操作符21.3.3 数学表达式21.4 结构化命令21.4.1 if语句21.4.2 while语句21.4.3 do-while语句21.4.4 for语句21.5 格式化打印21.6 内建函数21.6.1 数学函数21.6.2 字符串函数21.6.3 时间函数21.7 自定义函数21.7.1 定义函数21.7.2 使用自定义函数21.7.3 创建函数库21.8 小结第22章 使用其他shell22.1 什么是dash shell22.2 dash shell的特性22.2.1 dash命令行参数22.2.2 dash环境变量22.2.3 dash内建命令22.3 dash脚本编程22.3.1 创建dash脚本22.3.2 不能使用的功能22.4 zsh shell22.5 zsh shell的组成22.5.1 shell选项22.5.2 内建命令22.6 zsh脚本编程22.6.1 数学运算22.6.2 结构化命令22.6.3 函数22.7 小结第四部分 高级shell脚本编程主题第23章 使用数据库23.1 MySQL数据库23.1.1 安装MySQL23.1.2 MySQL客户端界面23.1.3 创建MySQL数据库对象23.2 PostgreSQL数据库23.2.1 安装PostgreSQL23.2.2 PostgreSQL命令行界面23.2.3 创建PostgreSQL数据库对象23.3 使用数据表23.3.1 创建数据表23.3.2 插入和删除数据23.3.3 查询数据23.4 在脚本中使用数据库23.4.1 连接到数据库23.4.2 向服务器发送命令23.4.3 格式化数据23.5 小结第24章 使用Web24.1 Lynx程序24.1.1 安装Lynx24.1.2 lynx命令行24.1.3 Lynx配置文件24.1.4 Lynx环境变量24.1.5 从Lynx中抓取数据24.2 cURL程序24.2.1 安装cURL24.2.2 探索cURL24.3 使用zsh处理网络24.3.1 TCP模块24.3.2 客户端/服务器模式24.3.3 使用zsh进行C/S编程24.4 小结第25章 使用E-mail25.1 Linux E-mail基础25.1.1 Linux中的E-mail25.1.2 邮件传送代理25.1.3 邮件投递代理25.1.4 邮件用户代理25.2 建立服务器25.2.1 sendmail25.2.2 Postfix25.3 使用Mailx发送消息25.4 Mutt程序25.4.1 安装Mutt25.4.2 Mutt命令行25.4.3 使用Mutt25.5 小结第26章 编写脚本实用工具26.1 监测磁盘空间26.1.1 需要的功能26.1.2 创建脚本26.1.3 运行脚本26.2 进行备份26.3 管理用户账户26.3.1 需要的功能26.3.2 创建脚本26.4 小结第27章 shell脚本编程进阶27.1 监测系统统计数据27.1.1 系统快照报告27.1.2 系统统计数据报告27.2 问题跟踪数据库27.2.1 创建数据库27.2.2 记录问题27.2.3 更新问题27.2.4 查找问题27.3 小结附录A bash命令快速指南附录B sed和gawk快速指南

\"\"301KB

java程序员面试简历模板下载

2009-11-30

java程序员面试简历模板java程序员面试简历模板java程序员面试简历模板java程序员面试简历模板java程序员面试简历模板

\"\"36KB

GPS硬件检测工具

2013-11-02

GPS硬件检测工具,我想大家都懂的不用我来解释了吧

\"\"11.89MB

[精仿]QQ2013局域网通讯(10.30更新版-带最新版界面库)

2013-11-02

项目名称:高仿QQ2013通讯DEMO-10.30更新版本号:10.30 最新版本下载内容:(C#)CC2013局域网通讯源码一份,可引用至工具箱最新版CSkin.dll-10.30版本界面库一份。界面库更新说明:CC2013-10.301.由于SkinForm名字太多人使用,界面库命名正式改为CSkin.dll,官网www.cskin.net。2.SkinTabControl标签中添加菜单箭头,可点击展开菜单。3.SkinTabControl添加标签关闭按钮。4.修复部分中文乱码问题。5.优化好友列表右键菜单。6.将窗体自定义系统按钮改为集合模式,可添加无数个自定义系统按钮。自定义系统按钮事件中可以 e.参数 来判断。7.增加360安全卫士-DEMO案例。8.增加SkinAnimatorImg控件,用于支持位图动画的播放。如360的动态logo。9.各种细节BUG优化。CC2013-10.111.添加SkinTabControlEx,加入更加自定义的美化属性和动画效果。2.添加SkinAnimator,通用动画控件。3.添加Html编辑器控件4.修复SkinButton图标和文本相对位置的BUGCC2013-9.261.优化好友列表CPU占用2.好友列表加入好友登录平台属性:安卓 苹果 WEBQQ PC3.优化标题绘制模式,新添标题绘制模式属性。4.新添标题偏移度属性。5.加入圆形进度条控件:ProgressIndicator。CC2013-9.5.21.优化截图控件,截图工具栏加入新功能。2.解决个人信息卡和天气窗体显示后不会消失的问题。3.各种细节BUG优化。CC2013-9.5.11.解决贴边左右隐藏的BUG。2.解决窗体点击事件不能触发的问题。3.优化SkinButton继承父容器背景色的代码。4.解决SkinButton异常错误。CC2013-9.31.好友列表右键菜单没反应问题。2.新增美化控件SkinDatagridview。3.密码软件盘回删不了文字问题。4.双击窗体最大化,最大化后再双击恢复原大小,(win7)。5.部分细节调优。实现功能:1.界面库中多达25个自定义换肤控件,让每个控件设设属性就能达到你想要的效果,支持图片换肤和色调绘制。2.四边阴影,毛边效果,可以设置阴影宽度和阴影颜色,支持所有系统。3.拥有密码键盘输入,防护更贴心。4.8种圆角窗体模式供你选择,淋漓尽致,润滑如圆。5.登录主界面后,有登陆提示窗,提示上次登录的城市和时间。6.皮肤随心变:拖动任意一张图片至主界面,就可以改变皮肤。7.皮肤色调获取:改变皮肤的同时,将计算图片色调,再将其运用到窗体背景色。8.皮肤尾部渐变:上下左右方均可实现,渐变皮肤。9.皮肤拖拉方向:可以选择皮肤在拉伸的时候,粘着哪一边拖拉。10.GDI+界面重绘,处理消息机制,3种移动模式和拉伸是否启用只需要设置一个属性的事就可以解决。11.界面渐变闪现和闪退:不再像平凡的突然出现,采用API渐变机制,渐渐出现和消失,win7系统下还有动态缩小至任务的效果。12.完美好友列表,可添加上千好友,不卡不掉线,还可以拖动好友到其他分组。13.好友悬浮至头像可以查看详细资料卡。14.窗口可调渐变后透明度:让窗体看起来更像是Vista玻璃窗体风格。15.聊天窗口可发送图片,大文件,表情,还有震动。16.按钮控件背景色拥有继承窗体背景主色调的功能,让整体色调保持一致。17.更是有和如出一辙的扣扣截图。仿真度也达到100%,完美修复所有已知BUG。18.聊天窗口,可以调字体颜色和字体样式等多项功能。20.SkinLabel与SkinButton控件字体与窗体标题可以根据背景色暗亮度自动调节字体为黑还是白。21.MessageBox提示框的美化,并继承调用窗口的色调与背景,MessageBox可所谓已达到帅气的不能再帅气的境界了。22.天气皮肤自动变,所有窗体根据当地天气自动决定皮肤背景,CC最帅气功能之一。23.个人资料卡及聊天窗体拥有动态CC秀展示。24.主界面拖动换肤的同时,所关联的子窗体皮肤也会跟着变。25.多线程大文件传输功能,支持无上限大文件传输,有进度条显示进程度。26.界面库已封装了大图取主色调,颜色判断暗亮等多项功能。27.如果你觉得获取天气让你的登录太慢不想要的话,注释相关调用方法即可快速登录。界面库交流群:306485590本人QQ:345015918注意:Demo版不包括更新,为方便用户查看和使用属性等方法,dll只轻微加密。想反编译的就不要尝试了,里面有上百个类,改错改到你哭。介意购买正版,永久更新配源码。看截图或者想购买商业版的用户请访问以下地址:http://www.51aspx.com/code/TotalLikeQQ2013特权:购买商业版的用户,有权利享有最快的更新服务,第一时间将最新版本的dll源码送到你手上。使本项目源码或本项目生成的DLL前请仔细阅读以下协议内容,如果你同意以下协议才能使用本项目所有的功能,否则如果你违反了以下协议,有可能陷入法律纠纷和赔偿,作者保留追究法律责任的权利。1、你可以在开发的软件产品中使用和修改本项目的源码和DLL,但是请保留所有相关的版权信息。2、不能将本项目源码与作者的其他项目整合作为一个单独的软件售卖给他人使用。3、不能传播本项目的源码和DLL,包括上传到网上、拷贝给他人等方式。4、以上协议暂时定制,由于还不完善,作者保留以后修改协议的权利。时间:2013-7-5作者: 乔克斯请保留以上版权信息,否则作者将保留追究法律责任。

本文链接: http://mediatech.immuno-online.com/view-749403.html

发布于 : 2021-03-25 阅读(0)
公司介绍
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://