在VS中编写C#代码时,若是在类、变量、方法等上方连续输入三个“\”,VS会自动为咱们生成一段XML注释模板。经过这段模板,咱们能够将代码的注释规范化,造成一份XML注释文档(能够在项目“生成”设置中对保存路径进行配置)。这样,不只VS能够读取,还可让如Swagger等第三方插件使用。插件
如下代码展现了经常使用的文档标记:code
/// <summary> /// 动物工厂 /// </summary> public class AnimalFactory { /// <summary> /// 建立类型为 <typeparamref name="TAnimal"/> 的动物 /// </summary> /// <typeparam name="TAnimal">动物的类型</typeparam> /// <param name="name">动物的名字</param> /// <returns>一个继承于 <see cref="Animal"/> 抽象类的实体</returns> /// <exception cref="ArgumentException">当 <paramref name="name"/> 为 <c>null</c>、<c>""</c> 或空白字符串时抛出</exception> /// <example> /// 你能够经过以下方式建立 <see cref="Dog"/> 的实例 /// <code> /// var dog = AnimalFactory.CreateAnimal{Dog}(“小白”); /// Console.WriteLine(dog.Name); /// </code> /// </example> /// <remarks><see cref="CreateAnimal{TAnimal}(string)"/> 是 <c>AnimalFactory</c> 的静态方法</remarks> public static TAnimal CreateAnimal<TAnimal>(string name) where TAnimal : Animal, new() { if (string.IsNullOrWhiteSpace(name)) throw new ArgumentException("动物名字不能为空", nameof(name)); return new TAnimal() { Name = name }; } } /// <summary> /// 动物 /// </summary> public abstract class Animal { private string _name; /// <summary> /// 名字 /// </summary> /// <value>Name属性 get/set 的值是字符串字段:_name</value> public string Name { get => _name; set => _name = value; } } /// <summary> /// 狗 /// </summary> public class Dog : Animal { }
将dll与xml提供给他人使用时,VS中看到的就是这样:xml
// // 摘要: // 动物工厂 public class AnimalFactory { public AnimalFactory(); // // 摘要: // 建立类型为 TAnimal 的动物 // // 参数: // name: // 动物的名字 // // 类型参数: // TAnimal: // 动物的类型 // // 返回结果: // 一个继承于 ConsoleAppForXML.Animal 抽象类的实体 // // 异常: // T:System.ArgumentException: // 当 name 为 null、"" 或空白字符串时抛出 // // 言论: // ConsoleAppForXML.AnimalFactory.CreateAnimal``1(System.String) 是 AnimalFactory // 的静态方法 public static TAnimal CreateAnimal<TAnimal>(string name) where TAnimal : Animal, new(); }
<summary></summary>
:描述标注的类型或成员信息<typeparam name=""></typeparam>
:描述泛型类型的信息
<typeparamref name=""/>
:按住“Ctrl”键能够导航到该泛型类型
<param name=""></param>
:描述方法参数
<paramref name="name"/>
:按住“Ctrl”键能够导航到该参数
<returns></returns>
:描述方法返回值<see cref=""/>
:按住“Ctrl”键能够导航到该标记(如类、变量等)
<exception cref=""></exception>
:描述方法内可能抛出的异常类型
<c></c>
:标记其中的内容为代码,而且只有一行<code></code>
:标记其中的内容为代码,能够有多行<example></example>
:提供使用该成员的示例代码,一般与<code></code>
一块儿使用<remarks></remarks>
:提供更多备注信息<value></value>
:指示属性 get/set 操做的字段我的认为,规范的XML注释文档在项目开发和维护时能够起到事半功倍的做用,尤为是对外提供API时尤其明显。并且,规范的代码结构能够提升本身的代码质量,还能够给他人留下严谨负责的好印象。继承