💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 如何:使用 XML 文档功能(C# 编程指南) 下面的示例提供文档类型的基本概述。 ``` // If compiling from the command line, compile with: /doc:YourFileName.xml /// <summary> /// Class level summary documentation goes here.</summary> /// <remarks> /// Longer comments can be associated with a type or member through /// the remarks tag.</remarks> public class TestClass : TestInterface { /// <summary> /// Store for the name property.</summary> private string _name = null; /// <summary> /// The class constructor. </summary> public TestClass() { // TODO: Add Constructor Logic here. } /// <summary> /// Name property. </summary> /// <value> /// A value tag is used to describe the property value.</value> public string Name { get { if (_name == null) { throw new System.Exception("Name is null"); } return _name; } } /// <summary> /// Description for SomeMethod.</summary> /// <param name="s"> Parameter description for s goes here.</param> /// <seealso cref="System.String"> /// You can use the cref attribute on any tag to reference a type or member /// and the compiler will check that the reference exists. </seealso> public void SomeMethod(string s) { } /// <summary> /// Some other method. </summary> /// <returns> /// Return results are described through the returns tag.</returns> /// <seealso cref="SomeMethod(string)"> /// Notice the use of the cref attribute to reference a specific method. </seealso> public int SomeOtherMethod() { return 0; } public int InterfaceMethod(int n) { return n * n; } /// <summary> /// The entry point for the application. /// </summary> /// <param name="args"> A list of command line arguments.</param> static int Main(System.String[] args) { // TODO: Add code to start application here. return 0; } } /// <summary> /// Documentation that describes the interface goes here. /// </summary> /// <remarks> /// Details about the interface go here. /// </remarks> interface TestInterface { /// <summary> /// Documentation that describes the method goes here. /// </summary> /// <param name="n"> /// Parameter n requires an integer argument. /// </param> /// <returns> /// The method returns an integer. /// </returns> int InterfaceMethod(int n); } ``` ``` //此 .xml 文件生成了与上面的代码示例。<?xml version="1.0"?> <doc> <assembly> namexmlsampleAMP_LT/nameAMP_GT </assembly> <members> member name="T:SomeClass" <summary> Class level summary documentation goes here.</summary> <remarks> Longer comments can be associated with a type or member 通过注释 tagAMP_LT/remarksAMP_GT </member> member name="F:SomeClass.m_Name" <summary> 名称的 propertyAMP_LT/summaryAMP_GT 存储 </member> member name="M:SomeClass.#ctor" summary类 constructor.AMP_LT/summaryAMP_GT </member> member name="M:SomeClass.SomeMethod(System.String)" <summary> Description for SomeMethod.</summary> param name="s" 中的参数声明转到 hereAMP_LT/paramAMP_GT <seealso cref="T:System.String"> You can use the cref attribute on any tag to reference a type or member and the compiler will check that the reference exists.</seealso> </member> member name="M:SomeClass.SomeOtherMethod" <summary> Some other method.</summary> <returns> Return results are described through the returns tag.</returns> seealso cref="M:SomeClass.SomeMethod(System.String)" 通知使用 cref 特性引用特定方法 AMP_LT/seealsoAMP_GT </member> member name="M:SomeClass.Main(System.String[])" <summary> The entry point for the application.</summary> param name="args" 命令行 argumentsAMP_LT/paramAMP_GT 列表 </member> member name="P:SomeClass.Name" <summary> name 属性 AMP_LT/summaryAMP_GT <value> 值标记用于描述属性 valueAMP_LT/valueAMP_GT </member> </members> </doc> ``` ## 编译代码 若要编译该示例,请键入以下命令行: csc XMLsample.cs /doc:XMLsample.xml 这将创建 XML 文件 XMLsample.xml,使用类型的命令,您可以在浏览器或。 ## 可靠编程 XML 文档以 /// 开头。当您创建新项目时,该向导为您放置一些起始 ///行。对这些注释的处理有一些限制: * 文档必须是格式良好的 XML。如果 XML 格式不正确,将生成警告,并且文档文件将包含添加的注释遇到错误。 * 开发人员可自由创建自己的标记集。具有建议的标记集 (请参见其他阅读材料部分)。某些建议的标记具有特殊含义: * &lt;param&gt; 标记用于描述参数。如果使用,编译器将验证参数是否存在,以及文档中是否描述了所有参数。如果验证失败,编译器会发出警告。 * **cref** 特性可以附加到任意标记,以提供对代码元素的引用。编译器将验证该代码元素是否存在。如果验证失败,编译器会发出警告。编译器在查找 **cref** 特性中描述的类型时,会考虑所有的 **using** 语句。 * &lt;summary&gt; 标记由 Visual Studio 内的“Intellisense”使用,用来显示类型或成员的其他相关信息。 | ![](https://box.kancloud.cn/2016-01-31_56adb62c1380a.jpg) 注意 | | :-- | | XML 文件不提供有关类型和成员的完整信息 (例如,它不包含任何类型信息)。若要获得有关类型或成员的完整信息,文档文件必须与实际类型或成员上的反射一起使用。 | ## 请参阅 [C# 编程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [/doc (C# Compiler Options)](https://msdn.microsoft.com/zh-cn/library/3260k4x7.aspx) [XML 文档注释(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/b2s063f7.aspx)