Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
识别C#源代码中的注释_C#_Visual Studio 2008 - Fatal编程技术网

识别C#源代码中的注释

识别C#源代码中的注释,c#,visual-studio-2008,C#,Visual Studio 2008,如何识别C#源代码中的注释? 我想从评论中检索所有信息 public class TestClass { /// <summary> /// Sample method /// </summary> /// <param name="a">1 argument</param> /// <param name="b">2 argument</pa

如何识别C#源代码中的注释? 我想从评论中检索所有信息

public class TestClass
    {
        /// <summary>
        /// Sample method
        /// </summary>
        /// <param name="a">1 argument</param>
        /// <param name="b">2 argument</param>
        /// <param name="c">3 argument</param>
        /// <returns>true or false</returns>
        /// <exception cref="NotImplementedException">Always throw exception</exception>
        public bool Method(int a, object b, Panel c)
        {
            throw new NotImplementedException();
        }
    }
公共类TestClass
{
/// 
///抽样法
/// 
///1参数
///2.论点
///3论点
///真假
///总是抛出异常
公共布尔方法(int a、对象b、面板c)
{
抛出新的NotImplementedException();
}
}
  • 方法说明-“样品法”
  • 参数说明-“1参数,…”
  • 返回值的说明-“true或false”
  • 异常类型和描述
  • 其他用户标签

  • 最简单的方法是启用xml注释生成(项目属性->构建),并解析xml文件

    <?xml version="1.0"?>
    <doc>
        <assembly>
            <name>ClassLibrary2</name>
        </assembly>
        <members>
            <member name="M:TestClass.Method(System.Int32,System.Object,System.Windows.Forms.Panel)">
                <summary>
                Sample method
                </summary>
                <param name="a">1 argument</param>
                <param name="b">2 argument</param>
                <param name="c">3 argument</param>
                <returns>true or false</returns>
                <exception cref="T:System.NotImplementedException">Always throw exception</exception>
            </member>
        </members>
    </doc>
    
    
    班级图书馆2
    抽样法
    1参数
    2.论点
    3论点
    真假
    总是抛出异常
    
    我不确定您打算如何呈现这些数据,但有一个名为的开源项目,它可以在网页中很好地格式化这些信息

    为了使用nDoc,您需要在项目设置中启用xml输出。这将以XML格式获取所有注释


    即使您不使用nDoc,他们也会很好地启用XML输出

    Marc的答案是您最好的选择。如果您想(出于某种原因)手动执行此操作,则需要查找以///开头的连续行,将它们连接起来,然后将该字符串视为XML。

    如果您确实想获得“工作”,可以构建一个解析器。我想这取决于你想要实现什么,为什么,以及你必须投入多少资源/时间。如果你想解析C语言,考虑一下另一个解析器/编译器生成器。 我跳到了复杂性谱的另一端,但我不知道你的情况,所以这可能是合适的

    如果没有成熟的解析器,注释可能会很棘手。考虑这些边缘情况:

    // Blah blah // another double slash on the same line.
    /* 
     What about multi-line comments? 
    */
    
    /* 
       // What about double-slash comments inside of multi-line comments?
    */
    

    (我只是用这些边缘案例来描述表面)。

    但是如果没有XML文件,我该怎么办?它可以使用正则表达式?好吧,如果你有C#,你总是可以编译它来获得xml文件。。。你可以试试正则表达式,但这并不容易。但我没有访问该项目的权限,也无法编译它。我只有一些文件。