c# 怎么获取方法注释信息

 我来答
xiangjuan314
2016-01-21 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2929万
展开全部

为了使用C#提供的XML注释功能,注释应该使用特殊的注释语法(///)开头。在///之后,你可以使用预先定义的标签注释你的代码,也可以插入自己定义的标签。定制的标签将会在随后加入到生成的注释文档中。

<Summary> 对整体进行概要性描述
<summary>Description</summary>
类、属性(不推荐)、方法等


<para> 跟在Summary之后,对方法所涉及的入口参数进行有效的解释
<param name=username>本参数是用户的帐号</param>
方法的入口参数;


<returns> 对方法的返回值进行解释;
<returns>返回值零代表操作成功,-1代表操作不成功</returns>
方法的返回值;


<remarks> 对一些语句进行备注性描述
<remarks>本类需要调用另外一个User类相关方法</remarks>
类、方法、属性等;


<see> 在生成的文档中产生一个连接到其它描述的超链接;
<see cref=”[member]”/>
可以在其它注释标识符中加入


<seealso> 与上者的区别是本标识符显示超链接在一个文档的尾部的“See Also”区域,而前者在文档之中;
<seealso cref=”[member]”/>
不可以在其它注释标识符中加入


<value> 对一个属性进行概要性解释;
<value>这是一个public属性</value>
属性


<code> 如果需要置入一部分源代码段,可以使用本标识符将其标记出来
<code>
public int add(int a,b)
{return a+b;
}
</code>
可以在其它注释标识符中加入


<exception> 对程序中可能抛出的异常做解释;
<exception cref=”System.Exception”>抛出的异常情况</exception>
在方法当中如果有抛出异常,如“try…catch结构”时可以使用本标识符做解释


<permission> 对方法的访问权限做一些解释:
<permission cref=”System.Security.PermissionSet”>这是公共方法</permission>
方法,属性


<c> 与<code>标识符基本相同,但本标识符仅用于单行代码;
<c>return a+b;</c>
可以在其它标识符中插入使用;


<example> 举例说明,通常与<code>配套使用;
<example> 以下示例说明如何调用Add方法:
<code>
class MyClass
{
  public static int Main()
{
return Add(1+2);
}
}
</code>
</example>
可以在其它标识符中插入;


<paramref> 在其它地方引用一个入口参数
<paramref cref=”a”>请注意,这是一个整型参数</paramref>


using System;

/// <summary>

/// ClassName:SomeClass

/// Version:1.0

/// Date:2001/6/21

/// Author:cniter

/// </summary>

/// <remarks>

/// 本类仅是一个示例教学类,不完成具体的工作

/// </remarks>

public class SomeClass

{

     /// <summary>

     /// 内部私有变量,存储名称</summary>

    private string myName = null;

     public SomeClass()

     {

         //

         // TODO: Add Constructor Logic here

         //

     }

   

    /// <summary>

    /// 名称属性 </summary>

    /// <value>

    ///本属性为只读属性,返回用户名</value>

    public string Name

    {

       get

       {

          if ( myName == null )

          {

             throw new Exception("Name is null");

          }

             

          return myName;

       }

    }

    /// <summary>

    /// 本方法是没有进行具体构建</summary>

    /// <param name="s"> 入口参数S是一个String类型</param>

    /// <seealso cref="String">

    ///String类型的信息</seealso>

    public void SomeMethod(string s)

    {

    }

    /// <summary>

    /// 本方法仍然没有进行具体构建</summary>

    /// <returns>

    /// 返回值始终为0.</returns>

    /// <seealso cref="SomeMethod(string)">

    /// 参看SomeMethod(string)方法的说明 </seealso>

    public int SomeOtherMethod()

    {

       return 0;

    }

    /// <summary>

     /// 该应用程序的入口

    /// </summary>

    /// <param name="args"> 入口参数集合</param>

     public static int Main(String[] args)

     {

         //

         // TODO: Add code to start application here

         //

         return 0;

     }

}

xiaoan6688
推荐于2016-02-26 · TA获得超过214个赞
知道答主
回答量:90
采纳率:0%
帮助的人:58.1万
展开全部
PropertyInfo[] peroperties = typeof(TEST).GetProperties(BindingFlags.Public | BindingFlags.Instance);

        foreach (PropertyInfo property in peroperties)
        {
            object[] objs = property.GetCustomAttributes(typeof(DescriptionAttribute), true);
            if (objs.Length > 0)
            {
                Console.WriteLine("{0}: {1}", property.Name, ((DescriptionAttribute)objs[0]).Description);
            }
        }
        Console.ReadKey();
class TEST
{
    [Description("a")]
    public string X
    {
        get { return null; }
    }
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式