Visual Studio 2005集成开发环境图解

2023-11-05

摘要:
       本文探讨其中的一些功能,并且阐述开发人员如何使用它们以更快、更准确地编写代码。

正文:
   
        Microsoft Visual Studio 2005 包含许多对开发环境新的增强、创新和提高,其目的在于使 Visual Basic .NET 开发人员比以往更加高效。本文探讨其中的一些功能,并且阐述开发人员如何使用它们以更快、更准确地编写代码。

  除其他对 IDE 的“改进”之外,Visual Studio 2005 再次引入了“编辑并继续”,这对经验丰富的 Visual Basic 开发人员而言是个好消息。


   应用程序:IDE 增强功能

  该应用程序演示 Visual Studio 2005 IDE 中的类设计器 — 一个在 Visual Basic .NET 应用程序中可视化设计类层次结构的工具。在考察该应用程序的细节之前,让我们先概要介绍一下 Visual Studio 2005 IDE 中新的或改进的功能。

  配置设置

  如果曾经使用过 Visual Studio 的早期版本,那么您可能会花费一些时间自定义开发环境。您可能已经通过一些试验了解到可以指定工具窗口的位置,或者您可能已经发现 Visual Studio 中的菜单和工具栏是完全可自定义的。您也可以配置键盘映射、项目模板类型和帮助筛选器等。事实上,Visual Studio 使您总是能够将 IDE 元素排列成最适合个人的开发风格。

  Options 对话框

  图1 中显示的 Options 对话框为自定义 Visual Studio 开发环境提供大量的设置类别。默认情况下,Options 对话框显示最常见的设置。要显示所有的可用设置,请选择“Show All Settings”复选框。



1 Options 对话框。

  在 Visual Studio 2005 发布以前,IDE 自定义的主要不足之处是,无法以可移植的格式保存首选项。如果您必须在另一台计算机上重新创建这些设置,这是非常有用的。使用 Visual Studio 2005,可以稍后或在另一台计算机上快速而轻松地还原个人设置。

  Visual Studio 2005 允许以如下方式使用自定义设置:| 制作当前设置的副本以供另一台计算机使用。| 将设置分发给其他开发人员。| 允许团队对 IDE 的某些元素(例如,代码编辑器)使用相同的设置,而在 IDE 的其他区域内保留个人的自定义。

  如图2 所示,Options 对话框环境设置包括一个 Import/Export Settings 项。Always Save My Settings To This File 文本框中指定的文件在每次关闭 Visual Studio 时都进行更新。它可以是本地文件,也可以是网络文件。在您经常操作两台计算机的情况下,请将该文件设置在两台计算机都可以访问的网络位置,这样能够确保您 在两台计算机上均享用相同的 Visual Studio“外观”。另外,每次更改其中一台计算机的设置时,它都会自动在另一台计算机上显示。



2 Import/Export Settings 选项。

  在“Team Settings”部分下,可指定一个 .vssettings 文件来包含在一组开发人员中共享的设置。要理解其用途,不妨考虑以下情况:一个开发团队的所有成员都必须使用 Visual Basic .NET 代码文件相同的缩进和格式化选项。开发人员主管可以配置 Visual Studio 2005 中的格式化选项,然后使用 Import/Export Settings 对话框将这些格式化设置保存到网络共享的 .vssettings 文件中。然后,开发团队的其他成员更新他们的 Visual Studio 配置以使用该团队的设置文件。如果该团队以后决定更改默认值,则开发人员主管可以将新设置导出到相同的文件位置,该团队中的每个成员在他们下次启动 Visual Studio 时都将自动接收到此新设置。

  位于“Importing And Exporting”部分下的“Location”文本框指定一个导出或导入设置的默认位置。下一节描述如何导入和导出设置文件。

  注活动设置由两部分组成:首次启动 Visual Studio 2005 时所选的已安装 .vssettings 文件中预定义的自定义,以及其后进行的任何 IDE 自定义。在每次退出 Visual Studio 时,活动设置会自动保存到 currentsettings.vssettings 文件。

Import/Export Settings 对话框

  Visual Studio 2005 Tools菜单包含一个 Import/Export Settings 菜单项,用于打开一个管理设置文件的对话框。该对话框提供三个方面的基本功能:

  | 将当前的 IDE 设置导出到一个文件中 | 从文件中导入 IDE 设置 | 将环境重新设置为默认文件中预定义的工作方式

  根据是导出设置还是导入设置,该对话框可以让您分别选择将哪些设置导出到 .vssettings 文件,或者从现有的 .vssettings 文件导入哪些设置。

  注设置类别通常为工具窗口、选项页或 IDE 功能定义设置的逻辑分组。

  图3 显示一个已选中“Export IDE settings to a file”选项的 Import/Export Settings 对话框。在“Choose The Settings To Export”部分下,选择或清除要导出的单个设置或整个设置类别。



3 Export IDE 设置。

  对于高度可自定义的开发环境而言,一个明显的劣势是可能会使开发人员无意识地(当然没有人会有意这样做)删除 IDE 的必需功能。例如,可能删除工具栏或菜单中的必需项。或者,由于缺乏经验,将工具窗口重新排列为不可用的布局。在 Visual Studio 的早期版本中,可以还原 IDE 中的单个项(例如,通过转到 Window 菜单并选择 Reset Window Layout 命令)。这些重置工具中的大部分都已转移到 Visual Studio 2005 中。然而,单个重置工具只包含 IDE 功能的一小部分并分散在整个 IDE 中,这让有时查找一个合适的重置工具非常困难。

  如图4 所示,选择“Reset IDE settings”选项,将 IDE 环境更改为在许多预定义设置文件中定义的工作方式,这些预定义的设置文件在“Available Installed Settings Files”部分中列出。这些文件随 Visual Studio 2005 一起安装,其中包括窗口布局、工具栏和菜单命令的特定自定义,这些特定自定义反映面向特定编程语言(如 VB.NET、C++、C#、Web 或 J#)的公共首选项。



4 重置 IDE 设置。

  提示如果设置处于不能使用 IDE 的状态,或者它们阻止您访问 Import/Export Settings 对话框,则可通过使用重置开关从命令提示处重启 Visual Studio 2005 来还原默认设置,如下所示:devenv /resetsettings

  如果只需重置某些设置类别,则可使用“Import IDE Settings From A File”选项。可以从某个默认设置文件或本地设置文件中选择设置。还可以从 Visual Studio 2005 默认文件夹之外的文件夹中浏览文件。

  例如,在开发团队共享一个设置文件的情况下,该文件可能位于一个网络共享位置。如图 5 所示,一旦选择该文件,标题为“Settings Available To Import”的树视图就会列出存储在该文件中的设置。通过选择或清除列表中显示的项,可以选择要导入的设置。“Import IDE Settings From A File”选项允许您从 .vssettings 文件更改所有或者部分设置。



5 导入 IDE 设置。

帮助和社区集成

  Visual Studio 2005 在帮助信息的内容和访问信息的工具方面均有显著提高。这些提高还包括与基于社区的资源更全面的集成。

   过去与现在

  在查看帮助系统中的新功能和改进之前,让我们先从某个角度看看 Visual Studio 的早期版本如何提供获得帮助的途径,并着重说明各种方法的局限性:

  | F1 这充其量也只是个“命中或未命中”的工具。有时 F1 返回正确的答案。而有时它显示动态帮助窗口 — 提供关于“代码和文本编辑器”的帮助,而您很少会在这方面需要帮助。

  | 目录 (TOC ) 可以浏览 TOC 的内容树以查找与当前主题无关的主题。然而,虽然有时这可能会获得有用的信息,但也可能即费时又徒劳。

  | 索引在某些情况下,帮助索引仍然是查找有用信息的一个很好的选择。例如,如果已经知道感兴趣的 .NET Framework 类名,索引就会非常奏效。但当查找的是概念性信息时,索引就显得不够了。

  | 搜索搜索的主要缺点是它可能会返回多达五百个按随机顺序排列的结果。

  | 基于Web 的搜索虽然结果会随首选搜索引擎的不同而异,但它对许多开发人员而言还是一个可选的帮助工具。它不仅避免了 Visual Studio 早期版本中帮助工具的不足,而且还提供对 Internet 信息的访问。

  Visual Studio 2005 提供对这些工具的重要更新,从而允许您更高效地访问帮助内容,如下所示:

  | F1 对帮助主题中元数据的改进使 F1 可提供更多一致性帮助,即使您不在项目的上下文中。

  | 搜索Visual Studio 早期版本的筛选机制得到了改进,从而使提交的结果可以包含更贴切地匹配搜索条件的主题。另一个重要的改进是,该结果包含动态生成的每个返回项的抽象。

  | 如何实现 (How Do I)如图6 所示,这是一个访问帮助系统的新工具,它显示常见开发人员任务的组织层次结构。对于 Visual Basic .NET 开发人员而言,该工具提供数百个任务,且每个任务都包含技术指导内容和开发人员可以轻松地粘贴到代码编辑器中的示例代码。

  | 帮助收藏夹 Visual Studio 的早期版本包含一个集成的收藏夹工具,但只用于 Internet Explorer 链接。更新的帮助收藏夹工具使您可以保存特定于帮助的收藏,包括搜索查询的参数。



6 How Do I 工具。

   使用联机帮助内容

  与开发环境的早期版本一样,Visual Studio 2005 提供对 Web 站点(如 CodeGuru 和 Net247)内容的直接访问。这些站点以及其他专注于 .NET 的 Web 站点都是称为 .NETCodeWise 社区的 组的成员。CodeWise 社区是 Microsoft 发起的 Web 站点社区,提供关于 Microsoft 开发人员工具和技术的独立专业知识。如果您曾经访问过这些站点,您就会了解,该开发人员社区成员的投稿扩展并丰富了静态帮助资源。MSDN 内容的覆盖面很广,而社区内容则补充了其深度以及对于现实的开发人员而言极为重要的领域背景。除了扩展帮助内容并提供额外的代码示例之外,基于社区的 Web 站点还提供了其他资源,例如消息论坛。

  在从 IDE 的早期版本向前发展的过程中,Visual Studio 2005 将来自 CodeWise 社区成员站点的内容直接集成到帮助系统中。例如,从 Visual Studio 2005 搜索关于某个主题(如泛型)的帮助时,该搜索可能会返回一个本地 MSDN 主题的列表、一个 MSDN 联机主题的列表,以及一个 CodeWise 社区站点中相关页面链接的列表。这一创新功能使您可以便捷、直接地访问社区中最新、最流行的代码示例和技术文章,同时还可以显示从 MSDN 获得的全面静态内容。而且,这与执行特殊的基于 Web 的搜索相比更具有优势,因为在后者中,您必须亲自验证找到的信息在技术上是否准确。可以在 Options 对话框的帮助类别中配置联机帮助资源,包括 CodeWise 社区提供程序,如图 7 所示。



7 配置联机帮助资源。

项目增强功能

  
使用 Visual Studio 2005 时,立刻就能感触到的工作效率增强功能是:创建新项目而不必指定其存储位置。这一改变的灵感来自于开发人员的共同体验,这些开发人员创建用于测试代码或构 建原型的项目(这些项目只使用一次)。IDE 使您可以控制是否要保存该项目,而不是将这些项目作为一个新的解决方案提交到磁盘。

  该增强功能的工作方式与在 Microsoft Word 中创建新文档的方式类似,其中,打开一个文档,键入一些文本,打印,然后退出 Word 而无需保存该文档。相同的处理适用于在 Visual Studio 2005 中创建的项目;构建一个新应用程序,在调试器中运行它,添加项目项和资源,甚至在保存之前编译该应用程序。(New Project 对话框如图 8 所示)。和 Word 一样,Visual Studio 2005 先将未保存的文件存放在临时文件存储位置,然后再将它们保存在某个永久位置;或者关闭项目时放弃它们。如果选择放弃,Visual Studio 2005 则从临时存储位置删除该项目以及所有与之相关联的文件。这也称为“零影响”项目。



8 Visual Basic 项目模板。

  Visual Studio 2005 还引入许多新的项目项类型。许多项类型为公共用户界面元素提供模板,包括 Login 窗体、About 框和 Explorer 窗体模板,如图 9 所示。



9 项目项类型。

   项目设计器

  在 Visual Studio 的早期版本中,通过使用可从项目菜单访问的对话框,能够操作项目属性。因为对话框是模式化的,所以需要首先打开属性对话框,更改设置,关闭该对话框,然后 才能继续处理您的代码。在一个典型的开发周期中,可能会多次返回到该项目属性。您也许会感到奇怪,“如果我将这些属性一直保持打开状态从而实现更容易的访 问,难道不好吗?”

  项目设计器满足了对项目属性实现更方便、更统一的访问的需要。在 Visual Studio 2005 中创建一个新项目时,您会发现在解决方案资源管理器中列出一个额外的项目元素,称为 My 项目。(请参见图 10。)打开此项,项目设计器就显示在 IDE 主编辑窗口中。



10 My 项目。

  项目设计器提供对项目属性的非模式化访问,使它们可以像代码文件或窗体设计器一样简单地进行访问。如果 Visual Studio 的早期版本很熟悉,您会注意到,项目设计器窗格合并了过去包含在属性对话框以及 IDE 其他部分中的属性,而其他窗格为 .NET Framework 2.0 引入的功能提供配置工具(如 Click- Once 发布)。

应用程序窗格

  设计器在应用程序窗格(如图 11 所示)中合并了 Visual Studio 早期版本中属性对话框设置。该窗格还引入一些新项以定义应用程序的行为。一旦打开项目设计器,应用程序窗格就位于 Visual Studio 2005 文档窗口的选项卡中。(另外,还可通过右键单击解决方案资源管理器中的项目并选择“Properties”菜单命令,或选择 Project | <Project Name> Properties 菜单命令打开项目设计器)。



11 应用程序窗格。

  下面列出一些新的、更新的设置:

  | 启动对象仍然可以指定一个窗体或 Sub Main 过程作为应用程序的启动对象。项目设计器还包括了一个“Startup With Custom Sub Main”复选框,允许您设计自己的启动例程。另外,Visual Studio 2005 支持包括两种类型的启动事件的 Visual Basic 应用程序事件模型(请参见表 1)。

  | 启用可视化样式该设置默认为启用,它允许应用程序使用主机操作系统上存在的 Windows XP 主题。但是,可能会遇到出现一些情况:应用程序使用了 Windows XP 主题早期版本中的控件,在这种情况下应该禁用 Windows XP 主题以保留想要的应用程序外观。

  | 实现单个实例当多次单击一个特定的 Windows 应用程序(如媒体播放机)时,该应用程序只启动一次。而其他的应用程序(如计算器和记事本等)在每次单击其图标时都会启动此程序的不同实例。选择该设置允 许将应用程序的启动行为设置为单个实例,如果没有选中该设置,则应用程序将启动多个实例。

  | 关闭模式该选项确定激发应用程序关闭的事件。例如,对于 Windows 窗体应用程序,可选择在启动窗体关闭或应用程序退出时关闭该应用程序。

  | 初始屏幕该设置允许选择项目中的一个窗体作为初始屏幕。

  | 查看代码单击“View Code”按钮打开 MyEvents.vb代码模块。MyEvents.vb包含部分 MyApplication类(该类在My命名空间中定义)。MyApplication类存在的一个明显目的就是包含应用程序事件的处理程序,如表 1 所述。
表 1 MyApplication 事件
名称 描述
Startup

应用程序启动时引发

Shutdown

应用程序退出时引发

UnhandledException

应用程序中出现一个未处理的异常时引发

StartupNextInstance

用户试图启动应用程序的另一个实例时引发,该应用程序配置为以单个实例运行

NetworkAvailabilityChanged

基础网络连接的状态发生变化时引发
管理程序集信息

  在用于 .NET Framework 的 Visual Studio 的早期版本中,通常在 AssemblyInfo.vb 代码文件中管理全局程序集属性。与项目中任何其他代码文件一样,要更改程序集属性,需要在代码编辑器中打开该文件并在必要时更新其属性。下面是 AssemblyInfo.vb 中的一些公共属性:
<Assembly: AssemblyTitle(“IDE Enhancements”)>  <Assembly: AssemblyDescription(“New Visual Studio 2005 IDE features”)>  <Assembly: AssemblyCompany(“Leaf Solutions”)>  <Assembly: AssemblyProduct(“Moving to Visual Studio 2005”)>  <Assembly: AssemblyCopyright(“”)>  <Assembly: AssemblyVersion(“.0.0.0”)>  <Assembly: AssemblyFileVersion(“.0.0.0”)>  <Assembly: ComVisible(False)>
  在 Visual Studio 2005 中,程序集的属性仍然存储在 AssemblyInfo.vb 中,但默认情况下,该文件现在隐藏在解决方案资源管理器中。应用程序窗格通过程序集信息对话框(如图 12 所示)提供对这些属性的访问。该对话框是基本程序集属性的界面,对该对话框中列出项进行的任何更改都会自动写入基础 AssemblyInfo.vb 文件中。(当然,如果愿意,您仍然可以访问基础代码文件并直接进行更改)。



12 程序集信息对话框。

  签名窗格

  每个在公共语言运行库 (CLR) 上执行的托管程序集,均由与该程序集相关联的代码访问安全性 (CAS) 权限控制。在执行过程中,CLR 评估程序集请求的权限,然后授予或拒绝这些权限,其部分依据是提供给 CLR 的关于代码标识的证据。作为建立程序集标识的一种方法,签名窗格(如图 13 所示)允许您向项目中添加密钥文件 (.snk) 或存储在密钥容器内的密钥。编译器使用该密钥对程序集以强名称进行签名。为适应开发人员需要开发预发布版本但只能访问公钥的情况,该窗格还提供一个用于启 用延迟签名的复选框。

  重要事项对于 ClickOnce 应用程序而言,签名密钥是发布必需的。该密钥用于对应用程序和部署清单进行强名称签名。该主题将在第 8 章“部署应用程序”中详细讨论。



13 签名窗格。

   引用窗格

  与 IDE 早期版本一样,仍然可以从项目菜单中访问项目引用和 Web 引用。但是,Visual Studio 2005 在引用窗格中添加了这些项的额外访问点,如图 14 所示。可以使用该引用窗格来管理导入的命名空间、程序集和 Web 服务引用。此可选视图的另一个重要好处是,它将项目引用合并到单个 UI 组件中。该窗格还包含用于以下功能的工具:设置一个或多个引用路径,以及标识未在项目中使用的引用程序集,另外,还可以使用该窗格管理命名空间导入设置。



14 引用窗格。

   编译窗格

  除了为每个不同的生成配置设置默认的编译器选项之外,编译窗格(如图 15 所示)还可以为不同的编译条件指定不同的通知行为(如警告、错误或无)。可以使用该窗格设置条件通知选项。



15 编译窗格。

  您也可以从此窗格访问生成事件对话框。与 IDE 的早期版本一样,该对话框用于指定预生成和生成后命令行事件,另外还用于指定生成后事件激发的条件。生成后事件执行的条件可以是“Always”、“On Successful Build”或“When The Build Updates The Project Output”。

MSBuild 集成

  Visual Studio 2005 引入一个新的生成引擎,称为 MSBuild,它在 Visual Studio 2005 IDE 中集成以显著改进生成过程。虽然 MSBuild 在 Visual Studio 2005 IDE 中进行操作,但是对它进行了专门设计,以便可以从命令行执行生成任务。

   资源窗格

  项目设计器的资源窗格为项目提供一个全面的资源管理器。(请参见图 16。)资源类别包括本地化字符串、图像、图标、声音文件和文本文件。可从类别下拉列表访问各种不同的资源类别。例如,要添加一个资源 — 如字符串,只需在用户界面显示的表中键入该资源的名称及其相关联的值即可。



16 资源窗格。

  另外,对于图像和图标资源,可以添加一个现有的图像或图标文件;或者在开发环境中(请参见图 17)直接创建一个新的图像或图标。



17 图标设计器。

   资源和框架的集成

  资源窗格是 IDE 与增强的 .NET Framework 紧密集成的一个很好示例。资源页中管理的项通过 MyResources 模块在 My命名空间代码中自动可用,MyResources 模块包含代码中项目资源的表示。资源窗格中管理的项与基础代码文件之间的同步由强类型资源生成器(一个集成的 Visual Studio 2005 工具)透明地进行管理。当更改资源页中的元素时,该工具会将这些更改写入 MyResources 模块,而后者可以在 MyResources.vb 文件中找到。

  默认情况下,MyResources.vb(以及许多其他自动生成的项目文件)对解决方案资源管理器中的视图是隐藏的。可通过单击 Show All Files 按钮显示解决方案资源管理器中的隐藏文件。

  由强类型资源生成器生成的代码等价于由命令行实用工具 ResGen 生成的输出类。与 ResGen 相比,该实用工具的主要优势在于无需在每次更新资源文件时都运行它;Visual Studio 会自动管理这些更新。

   设置窗格

  一个常见的应用程序开发任务是为存储应用程序和用户设置提供一种机制。这可能包括一些状态信息,例如数据库连接字符串、窗体的位置和大小、工具栏位置 和内容的首选项、数据库连接字符串以及 Web 服务的 URL — 以及其他更多的信息。.NET Framework 的早期版本提供了用于存储设置的不同选项。例如,可使用动态属性或者向应用程序配置文件添加自己的内容。.NET Framework 2.0 体现了这些技术的发展。.NET Framework 2.0 引入新的类,用于将应用程序和用户设置作为强类型对象进行管理。这些类通过使用项目设计器中的设置窗格集成到 Visual Studio 2005 IDE。

  功能级别设置窗格本身有许多功能级别。首先,可以为几乎任何符合 CLS 的类型创建设置。它还包括一种用于数据库连接字符串的特殊类型。事实上,当创建一个新的数据库连接时,Visual Studio 会自动将连接字符串添加到项目设置中。用户界面包括一个指定每种设置的名称、其类型以及设置值的输入表。另一个重要的属性是,该设置应用于整个应用程序范 围还是应用于单个用户。该表中的一列可以让您将作用域设置为这两个选项之一。

  在大多数开发周期中,应用程序可以部署到许多环境中 — 例如开发、测试、模拟调试以及生产。通常,每个环境需要不同的应用程序设置:数据库连接字符串是一个显而易见的例子,因为您不会在开发中冒险使用一个生产 数据库来测试应用程序。为了使管理不同的用户设置更加简单,可以为项目添加一个或多个配置文件。可以使用配置文件工具从现有的配置文件中复制设置,以避免 必须为每个配置文件实例重新创建设置的麻烦。

  事实上,在应用程序设计阶段为项目定义设置是一个不错的建议。在开发的早期阶段先大致进行设置。然后,在确定了应用程序设置后,为各个不同的部署环境 添加配置文件。要调整某个特定配置文件的设置,可以从下拉列表中选择当前的设置配置文件以激活该配置文件,然后进行相应的更改。

  提示如果使用多个设置配置文件,请记住,设置配置文件和活动的解决方案配置之间并没有直接的关系。在编译时,编译器使用项目设计器中当前处于活动状态的设置配置文件。作为一种最佳做法,请考虑创建与已定义的设置配置文件一致的解决方案配置。

  设置和框架的集成与资源窗格中定义的项一样,Visual Studio 2005 自动提供对设置窗格中管理设置的强类型访问。同时也与项目资源一样,可以通过 My命名空间以编程方式访问设置。然而,虽然在运行时 My.Resources对象只允许对项目资源进行只读访问(因为资源元素在代码中是以只读属性表示的),但 My.Settings对象将用户设置公开为读/写属性,这当然意味着可以在运行时对它们进行更改。

  My.Settings类派生于 ApplicationSettingsBase类。这两者之间的关系为 My.Settings提供两种操作用户设置的方法:一个 Save 方法和一个 Reset 方法。更改用户设置的编程模型非常简单。在代码中,只需更新作为 My.Settings对象的属性公开的用户设置,然后调用 Save 方法保存更改。要将所有的用户设置改回上次保存的设置,请调用 Reset 方法。

  注ApplicationSettingsBase类在 .NET Framework 的许多方面都很重要。例如,它被许多 Windows 窗体控件继承,以提供对控件属性(如大小和位置等等)的运行时访问。该类还提供必要的功能以将运行时对控件属性的更改保存为用户设置。

  My.Settings对象还公开从 ApplicationSettingsBase类继承的事件。这些事件包括 PropertyChanged、SettingChanging 和 SettingsSaving。

新的和改进的工具窗口

  Visual Studio 2005 IDE 包含许多工具窗口,旨在提高工作效率并减少需要编写的代码数量。本节介绍 Visual Studio 2005 IDE 中用于提高工作效率的一些工具窗口。

   代码编辑器

  如果对 Visual Studio 以前版本中 C# 代码编辑器的文档功能有所了解,那么您就会发现 Visual Basic .NET 代码编辑器的另一个新功能,它允许自动插入标记以生成 XmlDoc 注释。要使用此功能,可以将光标放置在代码文件中一个成员的上方,然后键入三个单引号。这样就生成如下 XmlDoc 注释标记:
‘‘‘<summary>  ‘‘‘  ‘‘‘</summary>  ‘‘‘<param name="fireDate"></param>  ‘‘‘<remarks></remarks>  Public Sub Fire(ByVal fireDate As Date)  . . .  End Sub   虽然多年以来这个功能在 C# 代码编辑器中一直可用(它使用三个正斜杠,而不是单引号),但是对于 Visual Basic .NET 代码编辑器而言,这仍然是一个适时加入的新功能。

   数据预览对话框

  数据预览对话框允许预览项目中任何 DataComponent查询返回的数据。要预览数据,可以从数据设计器窗口打开数据预览对话框(如图 18 所示)。也可以从数据源窗口访问数据预览对话框。



18 从数据设计器打开数据预览对话框。

  在“Data Preview”对话框中,首先选择要预览的对象。如果该对象是一个带参数的查询,则在该对话框的独立控件中输入参数值。然后单击“Preview”按钮以执行该查询,结果数据的显示如图 19 所示。

  注更改数据库中数据的查询(如 INSERT、UPDATE 和 DELETE 查询)在预览数据对话框中执行时不会影响该数据库。



19 数据预览数据对话框。

   文档大纲

  在 Visual Studio 2005 IDE 的早期版本中,文档大纲窗口通过提供标记层次结构的可视化表示允许您查看 HTML 或 ASPX 页面的结构。该窗口通过使用树视图来显示 HTML 标记、脚本元素以及页面上的控件,可以展开或折叠此树视图以将注意力放在页面上的特定区域。双击该视图中的任一项,就可以在页面上直接定位到该项的位置。 Visual Studio 2005 延续了该功能并进行了扩展,从而为 Windows 窗体上的元素提供相同的可见性。

  用于 Windows 窗体布局的文档大纲窗口(如图 20 所示)为管理窗体上的控件提供一种简单的方法。与文档大纲窗口的最初导入一样,可以在浏览该大纲时展开和折叠所包含的项。要选择窗体设计器中的一个控件, 可以在树视图中单击该项。您可以合理地推断,既然复杂的控件布局在任何重要的 Windows 窗体应用程序中都很常见 — 该应用程序也可能包含许多深层嵌套的隐藏组件,或者这两者都有 — 那么相对于仅将其用于简单的 Web 页面编辑而言,将文档大纲扩展为窗体将为开发人员提供更大的好处。另外,也可以在容器的层次结构内将控件从一个容器拖放到另一个容器。



20 文档大纲窗口。

   注:重新排列文档大纲窗口中的控件只在 Windows 窗体中可用,而不可用于 Web 页。

窗口停靠的增强功能

  对于开发环境而言,另一个值得注意的增强功能是停靠参考线的引入(图 21)。当在 IDE 中重排窗口时,设计图面上将出现可更改的图标,将您引导至可以放置该窗口的区域。如果将鼠标悬停在该图标上,IDE 的相关区域就会变灰,指示如果选择完成此操作该窗口将出现的位置。



21 停靠参考线。

   类设计器

  类设计器(如图 22 所示)是一种可视化设计工具,用于检查和操作类和其他类型的结构。该工具与设计器所显示类型底层的源代码完全集成;例如,如果更改了一个属性名,该代码文 件会自动进行更新以反映此更改。反过来,在源代码中所做的更改也会立即影响到设计器中与其相关联的对象的外观。

  设计器和代码之间的这种同步编辑关系使可视化地创建和配置 CLR 类型非常简单。



22 类设计器。

编写正确的代码

  Visual Studio 2005包含了许多工具 — 一些是对旧功能的增强,一些是新增功能 — 这些工具都是为了一个共同的目标:让开发人员能够更轻松地在设计时正确编写代码。在下面的章节中,我们将介绍 IDE 中的一些重要功能,可使得在 Visual Studio 2005 中编写代码时更少出错。

   智能感知增强功能

  Microsoft智能感知技术延续了 Visual Studio 早期版本的主要功能,例如自动跟踪特定类型的最常用成员。另外,对智能感知进行了改进,以包括一个用于选择显示某种类型的所有成员(如图 23 所示)或者只显示其最常用成员的工具。



23 智能感知窗口。

  如果选择了“All”按钮,则显示该类型中的每个成员(包括隐藏成员)。如果您单击“Common”按钮,则改为只显示该类型中最频繁使用的成员。如 果通常只使用一个给定类型(尤其是那些带有许多成员的类型)的一些属性和方法,则在 Common 模式下使用智能感知可以使您在键入代码时更易于定位这些项。

   语法错误帮助

  Visual Basic 开发环境以前的版本在提供设计时反馈方面一直都与众不同,尤其是当该反馈包含错误的语法时。代码编辑器在含有错误的代码项下面显示一条曲线。将光标放置于 该曲线上会显示一个简单描述此问题的工具提示。多年以来,这种设计时语法检查的形式一直是 Visual Studio 的重要功能,而且也确实很有帮助,但是不管该错误描述是否为您提供足够的信息以更正问题,它基本上还是一种“命中或者未命中”的机制。

  对于 Visual Studio 2005,Microsoft 也向其中加入了这项功能以便可以立即更正错误。并且该功能使用您所熟悉的与 Visual Studio 以前的版本相同的 UI 行为。如果编写了后台编译器认为是语法错误的代码,在代码编辑器中也会显示相同的曲线。如果将光标悬停在指示有错误的行上,则不仅会显示同样的描述性工具 提示,而且还会看到一个小帮助图标。单击该图标会打开一个对话框,该对话框不仅显示了对错误的描述,而且还列出该问题的一个或多个解决方案(请参见图 24)。要实现某个它所建议的修改,只需单击适当的修改。



24 错误更正对话框。

   设计时表达式计算

  Visual Studio 2005 中的即时窗口也进行了增强,以便无需执行应用程序就可以测试代码。例如,假定在 Visual Basic .NET 项目中构建了一个类,并且它包含了许多属性和方法。要测试这些代码,可以添加一个窗体或者构建一个控制台包装来对该类进行实例化。当在即时窗口中操作时, 可以实例化该类的一个实例,设置该对象的属性,然后调用它的方法。另外,如果在代码中设置了断点,并从即时窗口中调用一个方法或访问一个属性,则执行会在 断点处停止并允许您逐句通过代码,就像显式调用了调试器一样。

   错误列表和任务列表

  Visual Studio 早期版本的用户会发现,原先完全在任务列表中提供的功能现在分布在两个不同的工具窗口中。错误列表是一个新的工具窗口,显示由智能感知引发的语法错误消息 和由 Visual Basic .NET 编译器报告的生成错误。Visual Studio 2005 IDE 中任务列表的作用域已被缩减为只显示需要完成工作的提示,例如作为注释插入到代码中的 TODO 任务。

   代码片段

  代码片段是 Visual Studio 2005 IDE 中另一个激动人心的创新功能。该功能可以向代码编辑器中插入代码模板以执行常见任务。例如,假设要将 Windows 窗体控件中的拖放功能添加到应用程序中。您可能之前在最近的项目中已经编写了此代码,但是要将这段代码提交到内存是不可能的。代码片段让您可以直接从代码 编辑器中以可重用的形式获取代码,而不必在一个旧的项目文件中搜寻该代码或者在 MSDN 或 Web 中进行搜索。

  Visual Studio 2005 随许多按功能分类的有用代码片段(如图 25 所示)一起安装。其中包括用于读写文件、验证日期或电子邮件字符串格式的代码片段(仅举几例)。



25 代码片段。

  代码片段也通过作用域进行验证。这意味着,只有在代码中对当前位置合适的代码片段(例如在一个方法或函数内)才在菜单选择中可用。

符号重命名

  如果您和许多开发人员一样,那么当开始一个新的 Visual Basic .NET 项目时,您会倾向于使用窗体、控件以及其他代码元素的默认名称。一段时间之后,当应用程序逐渐成形,您就会根据所在组织使用的命名规则来重新命名这些项。 如果您的目标是编写专业的代码,这就是一项乏味却又必要的苦差事。符号重命名工具提供了一种简单易用的全局更新名称的方法,有助于减轻重命名代码元素的繁 重工作,并降低引入额外语法错误的风险。要在代码编辑器中使用这项功能,可以右键单击代码中的某一项,并从上下文菜单中选择“Rename”,如图 26 所示。



26 从代码编辑器访问符号重命名工具。

  在“Rename”对话框中,键入该符号的新名称,如图 27 所示。



 图 27 重命名对话框。

   调试器的增强功能

  Visual Studio 2005 提供许多工具来查看调试环境中的数据。其中许多工具(例如 Watch、Locals 和 Autos 窗口)一直用于 Visual Studio 的多个版本。这些工具提供应用程序数据的多个不同视图。但是您仍然可能遇到调试时很难检查数据的情形。在接下来的章节中,我们将探讨调试器环境和工具的增 强功能,这些增强功能可以使您更容易地在运行时诊断和更正错误。

   DataTip

  DataTip 一直是一种在调试器中快速查看简单数据类型的好方法。但是,在 Visual Studio 的早期版本中,对于复杂的数据类型,只能看到类型的名称而不是其中包含的数据,如图 28 所示。Visual Studio 2005 中 DataTip 的关键改进是它们现在可以显示复杂数据类型的成员,如图 29 所示。



28 简单数据类型。



29 复杂数据类型。

   DataTip 的另一个增强功能是为简单类型和复杂类型的每个成员提供上下文菜单。该上下文菜单包含以下选项:添加查看所选类型、编辑该类型的值或查看该类型的十六进制值。(请参见图 30。)


30 DataTip 选项。

  您也可以直接在 DataTip 中编辑成员值,方法是选择该值,然后键入其新值来替换它,如图 31 所示。




31 更新成员值。

  完成成员变量的更改后,DataTip 会自动显示更新的值,如图 32 所示。



32 更新之后的成员值。

   Visualizer

  Visual Studio 2005 调试器的一个更复杂的数据检查工具是 visualizer。Visualizer 是一个对话框,它将变量或对象以对特定数据类型有意义的方式进行显示。例如,使用 Visual Studio 2005 中包含的四个默认 Visualizer 之一,可以以 HTML、XML 或纯文本的形式可视化字符串变量。

  所有各种不同的调试工具 — DataTip、Watch 窗口、Locals 窗口或 Autos 窗口 — 都在可用 Visualizer 查看的数据类型旁边显示一个放大镜图标。单击放大镜可以选择一个 Visualizer 来显示相应对象的数据类型。

  除了刚才提及的三个基于文本的 Visualizer 之外,默认情况下还包含一个数据集 Visualizer,使用该 Visualizer 可以更方便地检查数据集中包含的数据。

  提示其他 Visualizer 将来可以从 Microsoft 下载获得。

   异常助手

  异常助手是 Visual Studio 2005 引入的一个新调试工具。当一个运行时异常发生时,它将以一个对话框的形式出现,显示关于该错误的细节。值得一提的是,该异常助手对话框还包括处理异常的故障诊断提示。

  该对话框的标题栏显示错误的类型,标题栏下方是对错误的描述。该助手的顶部是故障诊断提示部分,它在大多数情况下都会提供一些指向帮助内容的链接,以帮助您诊断问题。然而,在许多情况下,此助手会为更正错误提供循序渐进指导。

   自定义数据显示

  Visual Studio 2005 为在调试器中自定义数据显示提供了几个选项。接下来的一节介绍了三种用于操作调试器中显示数据方式的方法。

  重写自定义类型的 ToString 方法

  要改变调试器中显示的自定义类型的数据,一种最简单的方法是重写基对象 ToString方法,如下所示:

Overrides Function ToString() As String  Return Me.FirstName & ““& Me.LastName  End Function   使用调试器显示属性

  其他的情况可能需要对数据如何显示进行更多的控制。您可能想按照不同的方式设置基础数据的格式,或者限制在调试器中显示的数据量。.NET Framework 为控制数据在调试器中的显示方式提供了三个属性类:

  | DebuggerDisplayAttribute应用该属性为调试器数据窗口中的类型添加摘要。例如,下面的代码显示如何向一个自定义数据类型添加摘要:
<DebuggerDisplay(“Associate ( { FullName } “) >_  Public Class Associate  Private FullName as String  . . .  End Class   DebuggerDisplayAttribute的构造函数接受字符串格式规范。大括号内的文本表示所包含类的一个属性或方法。请注意,可以使用该 类的私有成员和公共成员。

  |DebuggerBrowsableAttribute将此属性应用于类中的成员,以控制它是否在调试器中显示。
Public Class Associate  <DebuggerBrowsable( False ) > _  Public Property SocialSecurityNumber As String  . . .  End Property  End Class   在前面的伪代码中,将 DebuggerBrowsableAttribute应用于 Associate 类的 Social-SecurityNumber属性将阻止该属性在调试器窗口中显示。

  | DebuggerTypeProxyAttribute该属性允许以一个自定义的调试器类型来替换属性化成员,从而提供了极大的灵活性。
<DebuggerTypeProxy( GetType( AssociateProxy ) )> _  Public Class Associate  . . .  End Class   DebuggerTypeProxyAttribute构造函数的输入参数指定一个类,此类用作显示该类型数据的代理。作为一种最佳做法,应该将该代 理类实现为它所应用的数据类型的一个嵌套内部类。这样,该嵌套类就可以对其所描述的类型的私有成员进行完全访问。

   演练

  该演练演示如何使用类设计器来构建并可视化地构造一个类的层次结构。

  此应用程序是一个类库,用于表示一个虚构的专业服务公司的数据实体。该类代表两种类型的员工实体,一种是 partner,另一种是 associate。

  这些实体分别使用 Partner Associate 类在类库中建模。因为它们共享许多公共属性和操作,所以 Partner Associate 类均派生于 Employee 基类,而 Employee 又派生于称为 Person 的其自身的基类。

  另外,设计要求 PartnerAssociate 类可序列化,并且这些类本身在序列化过程中可执行自定义代码。为达到此目标,这两个类均实现 System.Runtime.Serialization命名空间中包含的 ISerializable接口。

  抽象的 Employee 类还实现一个名为 IPerks 的自定义接口,该接口包含在项目中。该接口满足此项目的一个设计目标,即提供一种方式以建模不同类别员工的福利,因此该接口的实现对于每个派生于 Employee 类的类型而言均不相同。

  包含在项目文件中的是 ClassDiagram1.cd 文件,它由类设计器工具生成。如果在 Visual Studio 2005 的文档窗口中打开此文件,会看到它为类库提供对象层次结构的可视化表示。虽然这个特定的示例相对比较简单,但此关系图可以使您立即理解类库中各种不同类之 间的关系。还可以使用类设计器来更改类的任何属性或关系。因为类设计器与 Visual Studio 2005 IDE 紧密集成,所以对关系图中的对象所做的任何更改都会立即反映到基础代码文件中。

   小结

  Visual Studio 2005 集成开发环境包括许多新的和改进的用于提高工作效率的功能。IDE 还进行了重新设计,从而向开发人员提供对 .NET Framework 组件(如新的设置和资源体系结构)的更直接访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio 2005集成开发环境图解 的相关文章

  • ARM 调用约定是否允许函数不将 LR 存储到堆栈中?

    正如标题所示 我在理解 ARM 架构的调用约定时遇到问题 特别是 我仍然很难知道当你调用子程序时 LR 寄存器会发生什么 我认为 当您进入子程序时 处理 LR 寄存器的最明显 最安全的方法是将其存储到堆栈中 但该行为没有出现在文档中 因此我
  • Visual Studio Professional 2013 Update 5 中的“在线服务不可用”问题

    我一直在 vscode 2013 工作直到今天 但是 当我今天早上尝试打开 IDE 时 它收到 您的许可证已过时 必须更新 错误消息 如下所示 在我尝试更新许可证和登录操作之后 当我尝试这两个时 它得到 在线服务不可用 请稍后重试 错误消息
  • 使用 gdb 调试反汇编库

    在Linux和Mac OS X中可以使用strapi和next来调试应用程序而无需调试信息 在 Mac OS X 上 gdb 显示在库内部调用的函数 尽管有时会在每个 stepi 指令中推进多个汇编程序指令 在 Linux 上 当我进入动态
  • 在汇编中显示两位数? [复制]

    这个问题在这里已经有答案了 我对汇编编程完全陌生 在课堂作业的示例中 需要将两个数字相加并显示总和 我发现神秘的是当其是两位数时显示总和 这是我的代码 mov al num1 mov bl num2 add al bl add ax 303
  • 在 REP MOVSW 之前 PUSH CS / POP DS 的目的是什么?

    为什么在下面的代码中我们压入代码段 PUSH CS 然后将其弹出到数据段 POP DS 我将这些行明确指定为 line1 和 line2 请告诉我 MOVSW 在这里是如何工作的 IF HIGHMEMORY PUSH DS MOV BX D
  • 一条指令可以同时处于两种寻址模式吗?

    我在书中读到了以下内容从头开始编程 处理器有多种不同的访问数据的方式 称为 寻址模式 最简单的模式是立即模式 其中 要访问的数据嵌入在指令本身中 例如 如果我们想将寄存器初始化为 0 而不是给出 计算机要从中读取 0 的地址 我们将指定立即
  • 即使我确实为变量设置了初始值,数据段也没有被初始化

    我已经编写了一个代码 该代码应该生成某种数字列表 但是即使我为它们分配了初始值 我的数据段变量也没有被初始化 This is how DS 0000 looks when I run it 这是我的代码 但数据段只保留垃圾值 MODEL s
  • CALL指令是否总是将EIP指向的地址压入堆栈?

    x86架构中函数调用时是否存在返回地址不入栈的情况 No CALL根据定义 将在跳转到目标地址之前将返回地址压入堆栈 该返回地址是EIP or RIP sizeof call instruction 通常为 5 个字节 英特尔 64 和 I
  • NASM 轮班操作员

    您将如何在寄存器上进行 NASM 中的位移位 我读了手册 它似乎只提到了这些操作员 gt gt lt lt 当我尝试使用它们时 NASM 抱怨移位运算符处理标量值 您能解释什么是标量值并举例说明如何使用 gt gt and lt lt 另外
  • 为什么 Visual Studio 使用 xchg ax,ax

    我正在查看程序的反汇编 因为它崩溃了 并注意到很多 xchg ax ax 我用谷歌搜索了一下 发现它本质上是一个 nop 但是为什么 Visual Studio 会执行 xchg 而不是 noop 该应用程序是一个C NET3 5 64位应
  • 如何在浏览模式下禁用 RStudio 中的查看模式

    Is there a way to disable the View mode in RStudio when debugging functions 代码示例 myfun lt function browser myfun 我知道它不开放
  • 近调用/跳转表并不总是在引导加载程序中工作

    一般问题 我一直在开发一个简单的引导加载程序 并在某些环境中偶然发现了一个问题 在这些环境中 此类指令不起作用 mov si call tbl SI Call table pointer call call tbl Call print c
  • 减法进位标志

    我正在使用 MASM32 有了这个代码 mov eax 5 sub eax 10 CF 状态标志将被设置 但使用我的铅笔和纸 我实际上看到 MSB 没有任何进位 是的 我知道从较少的数字中减去大的数字集CF 但我想知道为什么 因为使用这段代
  • 两个基本的 ANTLR 问题

    我正在尝试使用 ANTLR 来获取简单的语法并生成汇编输出 我在 ANTLR 中选择的语言是 Python 许多教程看起来非常复杂或详细阐述与我无关的事情 我真的只需要一些非常简单的功能 所以我有两个问题 将值从一个规则 返回 到另一规则
  • 为什么当大小大于 50 时,该程序花费的时间会呈指数级增长?

    所以我正在为类编写一个 ARM 汇编快速排序方法 我对大部分内容都有了解 除了复杂性没有意义 我们将其与我们制作的另一种冒泡排序方法进行比较 它对于具有 1 个参数和 10 个参数的示例表现更好 然而 我什至无法比较 100 个参数测试 因
  • android studio 和 android SDK 捆绑的 eclipse 版本有什么区别

    我没有 Android 开发经验 我想开始编写应用程序 The 官方开发者工具页面 http developer android com tools index html包含两个不同 IDE 的链接 第一个包含捆绑的 ADT 版本Eclip
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • 从 NASM 调用 C 函数 _printf 会导致分段错误

    我一直在尝试使用 NASM 在 Mac OS 和 Windows 上学习 64 位汇编 我的代码是 extern printf section data msg db Hello World 10 0 section text global
  • 为什么我的空循环在 Intel Skylake CPU 上作为函数调用时运行速度是原来的两倍?

    我正在运行一些测试来比较 C 和 Java 并遇到了一些有趣的事情 在 main 调用的函数中 而不是在 main 本身中 运行具有优化级别 1 O1 的完全相同的基准代码 导致性能大约翻倍 我正在打印 test t 的大小 以毫无疑问地验
  • “mov (%ebx,%eax,4),%eax”如何工作? [复制]

    这个问题在这里已经有答案了 一直在从事装配作业 并且在很大程度上我对装配非常了解 或者至少对于这项任务来说足够好 但这个 mov 的声明让我很困惑 如果有人能解释这个 mov 语句如何操作寄存器值 我将非常感激 mov ebx eax 4

随机推荐

  • openGL增强表面细节----法线贴图

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 具体实现思路 二 代码 主程序c 着色器程序 效果 源码下载 前言 凹凸贴图的一种替代方法是使用查找表来替换法向量 这样我们就可以在不依赖数学函 数的情况下 对凸起进行
  • 【运维篇】四、服务日志控制

    文章目录 1 日志基础 2 记录日志 3 快速创建日志对象 4 日志级别更改 5 日志输出格式控制 6 日志记录到文件 1 日志基础 日志的作用 编程期调试代码 记录日常运营重要信息 峰值流量 平均响应时长 记录应用报错信息 错误堆栈 运营
  • 游戏开发jenkins杂谈系列:使用Extended Choice Parameter参数化构建

    可以查看 https blog csdn net qq1105273619 article details 91352562
  • IDEA打包jar包详尽流程

    打包流程 1 打开菜单栏File Project Structure 2 点击Artifacts 3 点击 JAR From module with depenencies 4 后弹出如下界面 自此开始 各种问题就来了 首先Module中
  • 基于CC2530的Zstack协议栈的SX1278调试记录

    SX1278Lora模块串口调试记录 串口调试代码 串口获取调试信息 SPI驱动IO口模拟 加深理解用 SX1278的通讯时序 SX1278 SPI通讯间隔要求 SX1278 寄存器设置 实例 实际调试 LORA信道划分建议 关于带宽 只是
  • [Elasticsearch]源码解析:ES如何避免脚本中的危险操作

    一 简述 在我们使用ES进行脚本操作的时候 可以在脚本中使用painless等脚本语言 但我们是否有想过在脚本中进行危险操作类似System exit 0 的时候 ES是怎么规避这种风险的 不废话 上例子 POST trick search
  • (二十八)admin-boot项目之基于MDC的全局日志追踪

    二十八 基于MDC的全局日志追踪 项目地址 https gitee com springzb admin boot 如果觉得不错 给个 star 简介 这是一个基础的企业级基础后端脚手架项目 主要由springboot为基础搭建 后期整合一
  • 服务器怎样创建多台虚拟主机,服务器是如何实现多台虚拟主机

    服务器是如何实现多台虚拟主机 内容精选 换一换 弹性云服务器 Elastic Cloud Server 是一种可随时自动获取 计算能力可弹性伸缩的云服务器 可帮助您打造可靠 安全 灵活 高效的应用环境 确保服务持久稳定运行 提升运维效率 通
  • 调用VSPD的DLL进行二次开发异常解决的解决方法。

    最近在学习 设想做一个实现虚拟串口的C 程序 因为我不会写驱动 于是参考老哥的方法 调用VSPD的DLL开放接口进行实现 从VSPD虚拟COM口安装包解出独立的驱动安装包 虚拟串口开发和EXE程序反解压 http blog csdn net
  • 开机f8修复电脑步骤_只要按一个键,可以修复很多电脑小故障

    经常遇到 客户的电脑开机进不了系统 卡在修复界面 半天没反应 有的开机在检测界面 一直没反应 还有的因为运行的程序太多 开个机要耐着性子 等10多分钟 才能使用电脑 还一直很慢 很卡 要重装系统 又担心很多程序找不到安装程序 只能一直忍 很
  • Python无法打开excel文档解决办法

    问题 无法打开excel文档 解决办法 安装xlrd模块 在cmd命令行下执行 pip install pyexcel xls 如果以上方法无法解决 继续报以下问题 pandas无法打开 xlsx文件 xlrd biffh XLRDErro
  • QQ js_sdk第三方授权登录 自定义登录按钮

    STEP 1 QQ放置页面添加 img src qq png function qqLogin QC Login showPopup 替换APPID和回调页面即可 STEP 2
  • 获取百度翻译内容

    import requests url https fanyi baidu com sug s input 请输入你要翻译的英文单词 dic kw s resp requests post url data dic print resp j
  • 【Unity】常见的角色移动旋转

    在Unity 3D游戏引擎中 可以使用不同的方式对物体进行旋转 以下是几种常见的旋转方式 欧拉角 Euler Angles 欧拉角是一种常用的旋转表示方法 通过绕物体的 X Y 和 Z 轴的旋转角度来描述物体的旋转 在Unity中 可以通过
  • mysql 报错 your password has expired.To log in you must change itusing a client that supports expired

    学习java少不了和数据库打交道 在使用 Navicat 连接 mysql 的时候 出现了这个错误 这表示你设置的密码过期了 这里我们重新设置一下密码即可 1 打开 cmd 窗口 进入 mysql 的 bin 目录下 2 连接mysql m
  • C++游戏制作入门小游戏(迷宫)此篇只适用于新手

    最近有些无聊 于是翻了翻以前的代码 找到了之前第一次编的游戏 想起以前学完C 无从下手的感觉 就把它加了点备注 当做一篇入门教程发出来了 这是用DevC 写的 参考自一位大佬写的贪吃蛇 下面上图 PS 开始界面我现在看来是相当的丑 好吧菜单
  • linux开机自动挂载硬盘命令,linux添加新磁盘分区开机自动挂载(随记)

    1 首先先添加一块新的磁盘 ps 虚拟机测试 2 添加好一个磁盘后 10GB 执行reboot命令 重启系统生效 reboot 3 执行fidsk l 则出现了新添加的磁盘 为sdb 4 执行分区命令 fdisk dev sdb n 为新建
  • 软件测试--bug的等级划分

    bug的严重级别 致命的软件缺陷 Blocker 一级bug 1 造成系统或应用程序崩溃 死机 数据丢失 系统挂起 如代码错误 死循环 数据库发生死锁 一直锁在一个地方不解锁 2 与数据库连接错误或数据通讯错误 未考虑异常操作 功能错误等
  • Markdown 技能树(4):链接

    Markdown 技能树 4 链接 Markdown 支持两种形式的链接语法 行内和参考两种形式 不管是哪一种 链接的文字都是用 方括号 来标记 行内形式链接 行内形式的链接是在方块括号后面接括号并插入网址链接即可 如果你还想要加上链接的
  • Visual Studio 2005集成开发环境图解

    摘要 本文探讨其中的一些功能 并且阐述开发人员如何使用它们以更快 更准确地编写代码 正文 Microsoft Visual Studio 2005 包含许多对开发环境新的增强 创新和提高 其目的在于使 Visual Basic NET 开发