C#必须知道的300个问题(txt+pdf+epub+mobi电子书下载)


发布时间:2021-01-29 06:50:59

点击下载

作者:明日科技

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

C#必须知道的300个问题

C#必须知道的300个问题试读:

前言

学会站在巨人的肩膀上!

程序员在求职时,经常会被问到有关开发经验的问题。例如,“从事了多少年的开发?”“参与了哪些大型项目?”等。为何面试官对项目经验丰富的求职者青睐有加?究其根源在于程序开发是一门实践性非常强的学科。“纸上得来终觉浅,绝知此事要躬行”,编程经验是程序开发者在实践中积累的技术资源库,里面是各种习惯用法、知识理论、代码片段和应用技巧。而编程高手一般也是站在前人的肩膀上,分析别人的代码而有所领悟,或者借鉴他人的经验技巧形成自己的技能,在认识错误与解决问题中进步。这也是每个编程者的必经之路。

本书图文并茂、难易并举,汇集了300余个一线开发人员常见的C#编程疑难问题,每个问题都给出了详细的解答与点评。通过对本书的学习,您可以尽享前人的开发经验,迅速提升个人的开发能力。

本书内容

本书以C#基础知识结构为框架,给出了每部分知识中可能遇到的疑难问题或者是开发技巧。本书共分为20章,包括C#语言及其开发环境、掌握C#语言基础、流程控制语句、字符与字符串、数组和集合、C#面向对象程序设计、异常处理和程序调试、Windows窗体、Windows应用程序常用控件、Windows应用程序高级控件、C#面向对象高级技术、ADO.NET数据访问技术、水晶报表与打印、文件及数据流技术、GDI+绘图、多线程技术、网络编程技术、注册表技术、C#语言新技术和Windows应用程序打包部署。

为了更清晰地阐述问题和给出问题的解决方案,本书设置了以下栏目。

问题阐述:对问题进行详细阐述,对于复杂问题,给出问题产生的条件,并对问题中需要解决的部分做出说明。

专家解答:根据问题进行具体分析,给出问题的正确答案及解题思路,提供该问题涉及的技术知识。

专家点评:对问题及解答做出总结,为以后的问题解决提供思路,以及给出此问题应该注意的事项和对该问题的一些拓展。

本书特色

贴近应用。本书精选的疑难问题都是在实际项目开发中遇到的,可以解决读者在编程中可能碰到的疑难问题。

横向链接。本书知识框架与《C#开发入门及项目实战》一书相对应,可以在对《C#开发入门及项目实战》一书进行基础学习之后,再用本书来丰富自己并提高技能。

解析透彻。本书对每个问题的相关知识进行细致地讲解,并进行知识拓展,使读者不仅知其然,而且知其所以然。

授人以渔。本书在讲解技术的同时,还注重对读者能力的培养,使读者掌握分析与解决问题的能力。

本书配套资源

本书提供了内容丰富的配套资源,包括源程序、素材,以及模块库、案例库、题库、素材库等多项辅助内容,读者朋友可以通过如下方式获取。

第1种方式:(1)登录www.tup.com.cn,在网页右上角的搜索文本框中输入本书书名(注意区分大小写和留出空格),或者输入本书关键字,或者输入本书ISBN号(注意去掉ISBN号间隔线“-”),单击“搜索”按钮。(2)找到本书后单击超链接,在该书的网页下侧单击“网络资源”超链接,即可下载。

第2种方式:

访问本书的新浪微博CSmrbook,找到配套资源的链接地址进行下载。

读者人群

本书非常适合以下人员阅读:

从事C#语言编程行业的开发人员

有一定语言基础,想进一步提高技能的人员

大中专院校的老师和学生

即将走上工作岗位的大学毕业生

相关培训机构的老师和学员

C#编程爱好者

读者服务&本书勘误

读者在使用本书过程中遇到的所有问题,均可通过以下方式联系我们。

1.新浪微博:CSmrbook。

及时发布读者答疑、本书勘误、配套资料更新等内容。

2.腾讯QQ:4006751066。

3.登录网站:www.mingribook.com,在论坛、勘误发布、读者纠错、技术支持、读者之家等栏目中的相关模块中提问、留言或查看。

本书作者

本书由明日科技组织编写,参加编写的有王小科、赵会东、聂喜婷、宋环雨、李继业、赛奎春、杨丽、高春艳、陈丹丹、王国辉、张振坤、李伟、沈博、孙秀梅、曹飞飞、王雪、朱晓、赵永发、潘凯华、刘欣、李慧、刘龄龄、孙茜、陈英、肖鑫等。由于作者水平有限,疏漏和不足之处在所难免,敬请广大读者朋友批评指正。编者第1章C#语言及其开发环境问题1C#与ASP.NET有什么关系?问题阐述

为什么大多数的ASP.NET应用程序都是用C#编写的?专家解答

ASP.NET是由微软在.NET Framework中所提供的开发Web应用程序的类别库,封装在System.Web.dll档案中,显露出System.Web命名空间,并提供ASP.NET网页处理、扩充以及HTTP通道的应用程序与通信处理等工作,以及Web Service的基础架构。ASP.NET是ASP技术的后继者,但其发展性要比ASP技术强大许多。

C#是Visual Studio开发工具中的程序设计语言之一,它不仅仅限于做ASP.NET的Web应用开发,还可以做软件、管理系统等。C#语言是在C语言和C++语言基础上重新构造的,其语法与C++和Java都比较相似,是基于.NET架构支持的一种完全面向对象的、类型安全的编译语言。C#几乎综合了目前流行的所有高级语言的优点,并提供了一种语法优雅、功能完善而又容易使用的外在表现形式。专家点评

如果想基于ASP.NET做Web技术开发,必须学习ASP.NET技术,还要选择一个支持ASP.NET的程序设计语言,C#是其中一个选择,也可以选择Visual Basic。问题2CTS、CLS和CLR分别作何解释?问题阐述

CTS、CLS和CLR分别是什么意思?专家解答

CTS、CLS和CLR是.NET框架的3个核心部分,下面分别对它们进行介绍。(1)CTS

CTS即通用类型系统,它定义了如何在.NET Framework运行库中声明、使用和管理类型,同时也是.NET Framework运行库支持跨语言集成的一个重要组成部分。通用类型系统主要执行以下功能:建立一个支持跨语言集成、类型安全和高性能代码执行的框

架。提供一个支持完整实现多种编程语言的面向对象的模型。定义各语言必须遵守的规则,有助于确保用不同语言编写的

对象能够发生交互作用。

.NET Framework类库中的通用类型系统支持两种类别的类型,分别为值类型和引用类型,下面分别对它们进行简单介绍。值类型

值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。值类型可以是内联的(由运行库实现)、用户定义的或枚举的。引用类型

引用类型存储对值的内存地址的引用,位于堆上。引用类型可以是自描述类型、指针类型或接口类型。引用类型的类型可以由自描述类型的值来确定,自描述类型进一步细分成数组和类类型,类类型是用户定义的类、装箱的值类型和委托。图1.1显示了通用类型系统的一般结构。图1.1 通用类型系统的结构(2)CLS

CLS即公共语言规范,它是许多应用程序所需的一套基本语言功能。CLS规则定义了通用类型系统的子集,即所有适用于公共类型系统的规则都适用于CLS,除非CLS中定义了更严格的规则。CLS通过定义一组开发人员可以确信在多种语言中都可用的功能来增强和确保语言的互用性。CLS还建立了CLS遵从性要求,可帮助用户确定托管代码是否符合CLS以及一个给定的工具对托管代码(该代码是使用CLS功能的)开发的支持程度。

CLS在设计上足够大,可以包括开发人员经常需要的语言构造;同时也足够小,大多数语言都可以支持它。此外,任何不可能快速验证代码类型安全性的语言构造都被排除在CLS之外,以便所有符合CLS的语言都可以生成可验证的代码。(3)CLR

CLR即公共语言运行库,是.NET Framework的基础,可以将其看作一个在执行时管理代码的代理,它提供了内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。

公共语言运行库用于管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务,这些功能是在公共语言运行库上运行的托管代码所固有的。至于安全性,则取决于包括托管组件的来源(如Internet、企业网络或本地计算机)在内的一些因素,由于托管组件被赋予不同程度的信任,这意味着即使用在同一活动应用程序中,托管组件可能执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。

公共语言运行库还通过实现称为通用类型系统(CTS)的严格类型验证和代码验证基础结构来加强代码可靠性。CTS确保所有托管代码都可以自我描述。微软和第三方语言编译器生成符合CTS的托管代码,这意味着托管代码可在严格实施类型保护和类型安全的同时使用其他托管类型和实例。专家点评

CTS(Common Type System)是通用类型系统,主要用于解决不同语言的数据类型不同的问题,它是一种类型标准,在这个标准中不但实现了COM的变量兼容类型,还定义了通过用户自定义类型的方式来进行类型扩展,所有以.NET平台为目标的语言通过建立本身数据类型与CTS之间的映射来实现与其他语言的数据类型的交互。

CLS(Common Language Specification)是公共语言规范,主要用于实现多种语言之间的互操作性,是公共语言运行库的子集。

CLR(Common Language Runtime)是公共语言运行库,是所有.NET应用程序运行时的环境,所有应用程序都要使用的编程基础,它如同一个支持.NET应用程序运行和开发的虚拟机。问题3Visual Studio 2010可以编写哪些类型的应用程序?问题阐述

在Visual Studio 2010开发平台下可以开发哪些类型的应用程序?专家解答

Visual Studio 2010可以编写控制台应用程序、Windows应用程序、ASP.NET Web应用程序、ASP.NET Web服务器应用程序等。下面主要介绍控制台应用程序、Windows应用程序和ASP.NET Web应用程序。1.控制台应用程序

控制台应用程序也叫做Console应用程序,在命令行方式下运行。控制台应用程序使用统一的重定向文本输出形式,主要偏重于内部功能实现的场合。2.Windows应用程序

Windows应用程序实现Windows窗体形式的操作界面,主要用于交互性较多的场合,如大型办公软件、大量网络信息传递及其他高端的网络开发与应用设计等。3.ASP.NETWeb应用程序

ASP.NET Web应用程序通过Internet传递可以被客户浏览的页面,如目前流行的各种网站及基于Web的网络办公系统等。专家点评

在当前的主流开发语言中,C#可以用来开发桌面应用程序、Web应用程序、RIA应用程序(Silverlight)和智能手机应用程序。可以说,C#是当前应用领域最广、最全面的高级开发语言。例如,典型的桌面应用程序fetion(飞信), Web应用dangdang、招商网银等,RIA应用程序pptv、江苏卫视、新浪财经等。问题4为何Visual Studio 2010安装失败?问题阐述

Visual Studio 2010安装失败,该怎么办?专家解答

基于.NET的Microsoft Visual Studio是.NET平台下非常强大的软件开发工具。在Visual Studio开发环境下,提供了一整套的软件开发和软件测试工具,包括设计、编码、编译、调试、与数据库的互操作等基本功能。

在安装Visual Studio 2010时首先应该满足如表1.1所示的条件。表1.1 安装Visual Studio 2010所需的必备条件

Visual Studio 2010安装失败,可能是2008版没有卸载完全。可以尝试先卸载电脑中已有的.NET Framework版本,然后再安装Visual Studio 2010。如果仍安装失败,就只能重新安装。注意:在安装Visual Studio 2010之前,一定要确保有足够的磁盘和内存空间。专家点评

Visual Studio是一套完整的开发工具,用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C#和Visual C++使用相同的集成开发环境(IDE),这样就能够进行工具共享,并能够轻松地创建混合语言解决方案。另外,这些语言使用.NET Framework的功能,它提供了可简化ASP Web应用程序和XML Web Services开发的关键技术。问题5怎样安装Visual Studio 2010的帮助文档?问题阐述

在Visual Studio 2008中,MSDN提供了强大的帮助工具。在Visual Studio 2010中该怎样安装MSDN?专家解答

Visual Studio 2010中提供了一个广泛的帮助工具,不再称为MSDN Library,而叫做Help Library管理器。在Help Library管理器中,用户可以查看任何C#语句、类、属性、方法、编程概念及一些编程的例子。

安装Visual Studio 2010帮助文档的步骤如下:(1)在Visual Studio 2010安装程序-完成页中单击“安装文档”按钮,如图1.2所示。图1.2 单击“安装文档”按钮(2)进入到如图1.3所示的“设置本地内容位置”界面,单击“浏览”按钮,选择Microsoft Visual Studio 2010 Help Library管理器的安装路径。(3)选择好安装位置后,单击“确定”按钮,进入到如图1.4所示的Help Library管理器“从磁盘安装内容”界面,在“操作”栏下添加要安装的内容。(4)单击“更新”按钮,进入到如图1.5所示的Visual Studio 2010 Help Library管理器的“正在更新本地库”界面。(5)本地库更新完成后将自动弹出“Help Library管理器”界面,如图1.6所示。图1.3 “设置本地内容位置”界面图1.4 “从磁盘安装内容”界面图1.5 “正在更新本地库”界面图1.6 “Help Library管理器”界面(6)单击“联机检查更新”选项,将弹出Help Library管理器的“设置”界面,如图1.7所示。图1.7 “设置”界面(7)选中“我要使用本地帮助”单选按钮,单击“确定”按钮,进入“选择默认环境设置”界面,在该界面中选择“启动Visual Studio(S)”即可启动Visual Studio 2010。专家点评

Visual Studio 2010中提供了一个强大的帮助工具,称为Help Library管理器。Help Library管理器是开发人员在开发项目过程中最好的帮手,它包含了对C#语言各方面知识的讲解,并附有示例代码。问题6designer.cs和.resx分别是什么?问题阐述

在每个Windows窗体应用程序中都有一个designer.cs文件和.resx文件,它们分别是什么?专家解答

在编写Windows窗体应用程序之前,最好对下面的内容有所了解,这对于编写Windows窗体应用程序会很有帮助,能让用户更快、更好地编写自己的Windows窗体应用程序。

designer.cs是设计器自动生成的文件,存放一些配置信息。当拖动一个控件到页面上时,就会产生相应的代码在designer.cs里面。

.resx文件属于资源文件,由XML组成,可以加入任何资源,包括二进制。.resx存储的是该窗体使用的一些资源信息,如使用了哪些资源、存放位置等。注意:这两个文件都是环境自动生成的,通过对窗体的拖、拉、点、按等操作,环境自动完成。无须担心怎么写,所以在未看懂之前,最好不要随意改动。专家点评

一般不需要专门修改这两个文件,当修改窗体或控件时,Visual Studio 2010开发环境会自动对这两个文件进行相应的修改,不需要担心,只要操作窗体和代码即可。问题7怎样设置断点,设置断点有什么好处?问题阐述

在程序调试时,为什么要设置断点,设置断点有什么好处?专家解答

断点是调试器设置源程序在执行过程中自动进入中断模式的一个标记。当程序运行到断点时,程序中断执行,进入调试状态。

在Visual Studio 2010的源程序编辑界面中,设置断点的方法有如下几种。(1)单击所要设置断点的代码行左边的灰色区域。单击一次设置断点,再次单击取消断点。(2)用鼠标右键单击某代码行,在弹出的快捷菜单中选择“断点”/“插入断点”命令。(3)单击某行代码,直接按F9键设置断点。

断点设置成功后,在代码行的左边会显示一个红色的实心圆,同时该行代码也突出显示,如图1.8所示。图1.8 设置断点成功

可以利用断点调试程序。设置断点后,即可运行程序。程序执行到断点所在的行,就会中断运行。程序中断后,如果将鼠标放在希望观察执行过程的语句的变量上面,调试器就会自动显示执行到断点时该变量的值。专家点评

程序中断后,断点所在的行还没有执行。通过设置断点可以查找程序运行时的错误,是调试程序常用的手段。问题8我的代码为什么不显示行号?问题阐述

在编写程序的过程中,我的代码为什么不显示行号?专家解答

开发人员可以设置后台代码的行号显示功能,应用此功能,可以清晰地看到代码置于后台编辑器中的位置,方便程序发生错误时对错误代码的查找。

解决此问题的步骤如下:(1)打开Visual Studio 2010开发环境,在菜单栏中选择“工具”/“选项”命令,弹出如图1.9所示的“选项”对话框。图1.9 “选项”对话框(2)在该对话框中选择“常规”选项,在右侧选中“行号”复选框,单击“确定”按钮即可。专家点评

在Visual Studio 2010开发环境中设置完显示代码行号后,如果在调试程序过程中出现错误,可以通过代码行号快速地找到程序出错的位置。问题9怎样使窗体中的控件布局统一?问题阐述

为了使界面更美观,怎样可以让窗体中的控件统一布局?专家解答

在程序开发领域中,.NET无疑是未来的发展主流,然而在开发软件时,对于开发人员来说,界面排版和代码编写同等重要,界面的好坏直接影响到软件的外观和易用性。开发程序时,可以通过“格式”菜单来布局窗体上的控件。

解决此问题的步骤如下:(1)打开Visual Studio 2010开发环境,新建一个Windows窗体应用程序,并将其命名为LayoutForm。(2)在默认窗体Form1中添加3个Button控件。(3)在Form1窗体中选中添加的3个Button控件,在菜单栏中依次选择“格式”/“水平间距”/“相同间隔”命令,如图1.10所示,使3个Button控件之间的水平间距相同。(4)另外,开发人员还可以通过“格式”菜单设置窗体中控件的对齐方式、大小以及垂直间距等,其对应的子菜单分别如图1.11~图1.13所示。图1.10 选择“格式”/“水平间距”/“相同间隔”命令图1.11 设置对齐方式图1.12 设置控件大小图1.13 设置垂直间距专家点评

控件统一布局可以使界面美观大方。软件界面设计不是只懂得高超的艺术设计就能实现的,还必须有丰富的计算机知识、媒体表示知识和人体工程学知识等。问题10可以将控件的位置和大小固定吗?问题阐述

为了使界面更美观,怎样可以让窗体中的控件固定?专家解答

有时为了固定窗体中控件的位置和大小,可以将该控件进行锁定。

在窗体中锁定控件的方法是:首先选择要锁定的控件,右击,在弹出的快捷菜单中选择“锁定控件”命令,如图1.14所示;或者在该控件的“属性”对话框中,将其Locked属性设置为True,如图1.15所示。图1.14 选择“锁定控件”命令图1.15 “属性”对话框专家点评

固定控件的大小和位置,可以方便开发人员对控件的操作。在一些应用程序的设计界面中会有很多控件,有时删除或移动某个控件,会直接影响其他控件的布局和界面的美观。问题11我的Windows应用程序为什么不显示控件?问题阐述

为什么我的Windows应用程序不显示控件?专家解答

控件是Windows窗体的灵魂,如果没有控件可以使用,将无法编写Windows窗体应用程序。

进行Windows窗体应用程序开发所需的控件都安装在工具箱中。工具箱是Visual Studio 2010中最重要的工具。通过工具箱,开发人员可以方便地进行可视化的窗体设计,简化了程序设计的工作量,提高了工作效率。

解决此问题的方法如下:

在“视图”下拉菜单中将“工具箱”选中,即可在应用程序的左边将所有的控件显示在工具箱中。选择工具箱的过程如图1.16所示。图1.16 选择工具箱专家点评

为了防止控件的“再次丢失”,开发人员可以单击工具箱中的按钮将工具箱自动隐藏。为了方便对工具箱的使用,可以单击工具箱中的按钮,设置工具箱的显示方式为浮动、停靠、以选项卡式文档停靠、自动隐藏或隐藏。工具箱是Visual Studio 2010的重要工具,每一个开发人员都必须对该工具非常了解。第2章掌握C#语言基础问题12什么是命名空间?命名空间和类库的关系是什么?问题阐述

在C#中命名空间是什么?它与类库又存在什么样的关系呢?专家解答

C#程序是利用命名空间组织起来的。命名空间既用作程序的“内部”组织系统,也用作向“外部”公开的组织系统(即一种向其他程序公开自己拥有的程序元素的方法)。如果要调用某个命名空间中的类或者方法,首先需要使用using指令引入命名空间,该指令将命名空间名所标识的命名空间内的类型成员导入当前编译单元中,从而可以直接使用每个被导入的类型的标识符,而不必加上它们的完全限定名。

C#中的各命名空间就好像是一个存储了不同类型的仓库,而using指令就好比是一把钥匙,命名空间的名称就好比仓库的名称,可以通过钥匙打开指定名称的仓库,从而在仓库中获取所需的物品。

类库是一个与公共语言运行库紧密集成的可重用的类的集合。这些类提供了Internet和企业级开发所需要的各种功能,为开发各种.NET应用程序提供了很大的方便。

类库中的每个类均按照功能划分到不同的命名空间下。专家点评

命名空间提供了一种组织相关类和其他类的方式。命名空间包含可在程序中使用的类、结构、委托和接口,一个命名空间可以包含其他的命名空间。问题13Console.WriteLine与Console.Write方法有什么区别?问题阐述

在C#中,Console.WriteLine与Console.Write方法都是输出语句,它们有什么区别?专家解答1.知识点介绍

Console.Write方法将指定的数据在控制台输出,不输出换行。这个方法有很多的重载,可以接受很多不同的参数,如整型、浮点型、字符串等。

而Console.WriteLine方法与Console.Write方法的区别是:Write方法不输出回车,WriteLine方法输出回车。2.示例

如下示例分别演示了WriteLine方法与Write方法的区别。

示例的运行结果如图2.1所示。

示例的运行结果如图2.2所示。图2.1 Write方法输出图2.2 WriteLine方法输出

图2.1与图2.2的不同之处在于图中光标的位置。光标所在的位置也正是Console. WriteLine()与Console.Write()的不同。专家点评

WriteLine方法和Write方法是Console类中提供的两个输出字符串的方法,在此例子中调用这两个方法输出字符串“明日科技”。WriteLine方法和Write方法还有一种输出格式:Console.WriteLine("格式串",参数表); 。如语句:

其中,0为参数说明符,{0}和{1}分别代表后面的参数,0为第一个参数,1为第二个参数,依此类推。iValue和fValue分别代表要输出的第0个和第1个参数。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载