首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> C# >> 正文

展现C#世界之九:配置和调度

  清单 9.4 使用条件属性实现方法

  1: #define DEBUG

  2:

  3: using System;

  4:

  5: class Info

  6: {

  7: [conditional("DEBUG")]

  8: public static void Trace(string strMessage)

  9: {

  10: Console.WriteLine(strMessage);

  11: }

  12:

  13: [conditional("DEBUG")]

  14: public static void TraceX(string strFormat,params object[] list)

  15: {

  16: Console.WriteLine(strFormat, list);

  17: }

  18: }

  19:

  20: class TestConditional

  21: {

  22: public static void Main()

  23: {

  24: Info.Trace("Cool!");

  25: Info.TraceX("{0} {1} {2}","C", "U", 2001);

  26: }

  27: }

  在Info类中,有两个静态方法,它们根据DEBUG符号被有条件地编译:Trace,接收一个参数,而TraceX则接收n个参数。Trace的实现直接了当。然而,TraceX实现了一个你从没有见过的关键字:params.

  params 关键字允许你指定一个方法参数,它实际上接收了任意数目的参数。其类似C/C++的省略参数。注意,它必须是方法调用的最后一个参数,而且在参数列表中,你只能使用它一次。毕竟,它们的局限性极其明显。

  使用params 关键字的意图就是要拥有一个Trace方法,该方法接收一个格式字符串以及无数个置换对象。幸好,还有一个支持格式字符串和对象数组的 WriteLine方法(第16行)。

  这个小程序产生的哪一个输出完全取决于DEBUG是否被定义。当DEBUG符号被定义时,方法都被编译和执行。如果DEBUG不被定义,对Trace和TraceX的调用也随之消失。

  条件方法是给应用程序和组件增加条件功能的一个真正强大的手段。用一些技巧,你就可以根据由逻辑"或"(||)以及逻辑"与"(&&)连接起来的多个符号,生成条件方法。然而,对于这些方案,我想给你推荐C#文档。

  9.2 在XML中的文档注释

  很多程序员根本不喜欢的一项任务就是写作,包括写注释和写文档。然而,有了C#,你就找到改变老习惯的好理由:你可以用代码的注释自动生成文档。

  由编译器生成的输出结果是完美的XML.它可以作为组件文档的输入被使用,以及作为显示帮助并揭示组件内部细节的工具。例如, Visual Studio 7 就是这样一种工具。

  这一节专门为你说明如何最好地运用C#的文档功能。该例子涉及的范围很广,所以你不能有这样的借口,说它过于复杂,以至很难领会如何加入文档注释。文档是软件极其重要的一部分,特别是要被其他开发者使用的组件的文档。

  在以下小节中,文档注解用来说明RequestWebPage 类。我已分别在以下几小节中做出解释:

  。描述一个成员

  。添加备注和列表

  。提供例子

  。描述参数

  。描述属性

  。编译文档

  9.2.1 描述一个成员

  第一步,为一个成员添加一个简单的描述。你可以用 <summary> 标签这样做:

  /// <summary>This is …… </summary>

  每一个文档注释起始于由三个反斜杠组成的符号"///".你可以把文档注释放在想要描述的成员之前:

  /// <summary>Class to tear a Webpage from a Webserver</summary>

  public class RequestWebPage

  使用<para>和 </para>标签,为描述添加段落。用<see>标签引用其它已有了注释的成员。

  /// <para>Included in the <see cref="RequestWebPage"/> class</para>

  增加一个链接到RequestWebPage类的描述。注意,用于标签的语法是XML语法,这意味着标签大写化的问题,而且标签必须正确地嵌套。

  当为一个成员添加文档时,另一个有趣的标签是<seealso> .它允许你描述可能使读者非常感兴趣的其它话题。

  /// <seealso cref="System.Net"/>

  前面的例子告诉读者,他可能也想查阅System.Net 名字空间的文档。你一定要给超出当前范围的项目规定一个完全资格名。

  作为许诺,清单9.5 包含 RequestWebPage类中正在工作的文档的所有例子。看一下如何使用标签以及嵌套如何为组件产生文档。

上一页  [1] [2] [3] [4] [5] 下一页

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 社区讨论
 博客论点
 Dotnet频道相关导航