C# API 文档注释规范

news2024/11/17 5:25:49

C# API 文档注释规范

  • 1. 命名空间注释(namespace)
  • 2. summary
  • 3. remarks and para
  • 4. param
  • 5. returns
  • 6. example and code
  • 7. exception
  • 8. typeparam

最近在开发工作中需要实现 API 帮助文档,如果根据所写的代码直接重写 API 帮助文档将会是意见非常大的工作量,如果根据所写的代码直接生成 API 帮助文档,将会大大减少工作量。Sandcastle Help File Builder可以实现上述需求。如果想要生成一个比较全面的 API 帮助文档,就需要对 C# 代码做一个比较全面的注释。在本文中,将根据Sandcastle Help File Builder 文档对 C# 代码注释做一个简单的总结。

1. 命名空间注释(namespace)

XML 注释不能直接应用于代码中的命名空间。因此,必须采取 指定命名空间注释的替代方法。

在源代码中,向每个命名空间添加一个空的 NamespaceDoc 类,当生成 XML 注释文件时,它们将用作命名空间注释。若要防止 NamespaceDoc 类出现在帮助文件中,请省略public关键字,并使用 CompilerGenerated 属性对其进行标记。 这将导致在为程序集生成反射信息时自动忽略该类。 下面是一个示例:

namespace OpenVinoSharp
{
    /// <summary>
    /// These are the namespace comments for <c>OpenVinoSharp</c>.
    /// </summary>
    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    class NamespaceDoc
    {
    }
}

2. summary

用于提供类型或成员的简要说明,对所有类型和类型成员都有效。格式如下:

/// <summary>
/// function/claee/enmu description
/// </summary>

例如:

/// <summary>
/// Global functions under ov namespace
/// </summary>
public static partial class Ov
{}

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816160129528

3. remarks and para

remarks:用于提供类型或成员的更详细说明,对所有类型和类型成员都有效。格式如下:

parade:用于在其他元素中开始一个新段落。格式如下:

/// <remarks>
/// dfunction/claee/enmu description
/// </remarks>

例如:

/// <remarks>
///     <para>
///     For IR format (*.bin):
///     if `bin_path` is empty, will try to read a bin file with the same name as xml and
///     if the bin file with the same name is not found, will load IR without weights.
///     For the following file formats the `bin_path` parameter is not used:
///     </para>
///     <para>ONNX format (*.onnx)</para>
///     <para>PDPD(*.pdmodel)</para>
///     <para>TF(*.pb)</para>
///     <para>TFLite(*.tflite)</para>
/// </remarks>
public Model read_model(string model_path, string bin_path = "") 

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816162809573

4. param

用于描述方法参数。对描述每个参数的方法和运算符重载有效。参数名称是被引用的参数的名称。格式如下:

/// <param name="paramName">
/// Parameter description
/// </param>

例如:

/// <param name="model_path">String with a model in IR / ONNX / PDPD / TF / TFLite format.</param>
/// <param name="weights">Shared pointer to a constant tensor with weights.</param>
public Model read_model(string model_path, Tensor weights) 

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816161147746

5. returns

用于描述方法的返回值,对返回值的所有方法都有效。格式如下:

/// <returns>description</returns>

例如:

/// <returns>InferRequest object</returns>
public InferRequest create_infer_request()

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816161706400

6. example and code

example: 用于定义类型或其成员之一的示例,以显示如何使用它。对所有类型和成员都有效。说明是可选的。通常包含一个或多个代码元素以显示示例代码,为了更具描述性的文本,可以根据需要包含在代码元素之间。

code:用于指示应将多行文本部分格式化为代码块。格式如下:

/// <example>
/// Optional code description
/// <code language="C#">
/// Example code
/// </code>
/// </example>

例如:

/// <example>
/// when user data has 'NHWC' layout (example is RGB image, [1, 224, 224, 3]) but model expects
/// planar input image ('NCHW', [1, 3, 224, 224]). Preprocessing may look like this:
/// <code>
/// var proc = PrePostProcessor(model);
/// proc.input().tensor().set_layout("NHWC"); // User data is NHWC
/// proc.input().preprocess().convert_layout("NCHW")) // model expects input as NCHW
/// </code>
/// </example>
public PreProcessSteps convert_layout(Layout layout)

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816162256142

7. exception

用于列出可由类型成员引发的异常。对属性、方法、事件、运算符和类型转换成员有效。异常类型是可以引发的异常类型的名称。格式如下:

/// <exception cref="exceptionType">description</exception>

例如:

/// <exception cref="">If a model has more than one input, this method throws ov::Exception.</exception>
public Input input()

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816163642151

8. typeparam

用于描述泛型类型和方法上的泛型参数。对泛型类型和泛型方法有效,用于描述每个泛型类型参数。类型参数名称是泛型类型参数的名称 引用。格式如下:

/// <typeparam name="T">Type parameter description</typeparam>

例如:

/// <typeparam name="T">data type</typeparam>
public void set_data<T>(T[] input_data)

在使用Sandcastle Help File Builder生成帮助文档后显示:

image-20230816165907570

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/887213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:shell函数

目录 一、基本格式 二、查看函数 三、删除函数 四、函数的返回值 五、函数的传参数 六、函数的作用范围 ​七、函数的递归 在编写脚本时&#xff0c;有些脚本可以反复使用&#xff0c;可以调用函数来解决 语句块定义成函数约等于别名 函数使用方法&#xff1a; 定义函…

ZooKeeper的应用场景(集群管理、Master选举)

5 集群管理 随着分布式系统规模的日益扩大&#xff0c;集群中的机器规模也随之变大&#xff0c;因此&#xff0c;如何更好地进行集群管理也显得越来越重要了。 所谓集群管理&#xff0c;包括集群监控与集群控制两大块&#xff0c;前者侧重对集群运行时状态的收集&#xff0c;后…

LabVIEW开发商用罗非鱼池水质控制系统设计

LabVIEW开发商用罗非鱼池水质控制系统设计 养鱼是一种水产养殖形式&#xff0c;其中鱼类在围栏内养殖&#xff0c;作为食物出售。这些围栏栖息地用于养殖全球大约一半的鱼类消费。罗非鱼是一种适合食品生产和经营的鱼类&#xff0c;因为它们能够快速繁殖。然而&#xff0c;为了…

【苹果Imessage推信软件】在服务器端,您可以保存设备令牌,并将其用于向特定设备发送推送通知

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

Linux -- 进阶 Autofs自动挂载服务 实验详解

服务端创建共享目录&#xff0c; 客户端实现自动挂载 第一步 &#xff1a; 客户端&#xff0c;服务端 均关闭安全软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootnode1 ~]# setenforce 0 [rootnode1 ~]# systemctl stop firewalld 第二…

windows安装go,以及配置工作区,配置vscode开发环境

下载安装go 我安装在D:\go路径下配置环境变量 添加GOROOT value为D:\go修改path 添加%GOROOT%\bin添加GOPATH value为%USERPROFILE%\go 其中GOPATH 是我们自己开发的工作区&#xff0c;其中包含三个folder bin,pkg,以及src&#xff0c;其中src为我们编写代码的位置 配置vscod…

算法通关村第4关【青铜】| 栈基础

1. 栈基础 栈的特征&#xff1a; 存取受限的线性表后进先出 栈的操作&#xff1a; push()pop()peek()empty() 2.数组实现栈 限制数组的存取规则&#xff0c;实现后进先出。注意数组边界的处理 public class Stack1<T> {private Object[] stack;private int top;//…

RPA机器人《国网电力》电力行业实施案例-基层减负 提质增效

背景&#xff1a;随着国网战略目标加速落地&#xff0c;数字化转型和精益化管理深化推进&#xff0c;各供电公司亟待突破精细化管控不深入、执行标准不够统一、系统数据不够融通等制约工作质效提升的能力瓶颈&#xff0c;针对这些问题&#xff0c;决定引入诸如RPA、OCR等技术&a…

深入Redis线程模型

目录 1.前言 2.Redis为什么快&#xff1f; 3.Redis 为何选择单线程&#xff1f; 3.1可维护性 3.2并发处理 3.3性能瓶颈 4.Reactor设计模式 5.Redis4.0前 单线程模型 - Event Loop 6.Redis4.0后 多线程异步任务 7.Redis6.0后 多线程网络模型 1.前言 这篇文章我们主要围绕…

快速搭建图书商城小程序的简易流程与优势

很多人喜欢阅读电子书&#xff0c;又有很多人依旧喜欢实体书&#xff0c;而实体书店拥有一个图书商城小程序便成为了满足用户需求的理想选择。如果您也想进入这一充满潜力的领域&#xff0c;但担心开发难度和复杂流程&#xff0c;别担心&#xff01;您能做到快速搭建一个专业、…

机器学习知识点总结:什么是GBDT(梯度提升树)

什么是GBDT(梯度提升树) 虽然GBDT同样由许多决策树组成&#xff0c;但它与随机森林由许多不同。 其中之一是GBDT中的树都是回归树&#xff0c;树有分类有回归&#xff0c;区分它们的方法很简单。将苹果单纯分为好与坏的是分类树&#xff0c;如果能为苹果的好坏程度打个分&…

Azure使用CLI创建VM

使用CLI创建VM之前&#xff0c;确保资源中的IP资源已经释放掉了&#xff0c;避免创建的过程中没有可以利用的公共IP地址打开 cloudshell ,并输入创建CLI的命令如下&#xff0c;-n指定名称&#xff0c;-g指定资源组&#xff0c;image指定镜像&#xff0c;admin-usernam指定用户名…

强化学习-深度确定性策略梯度(第5章)

来源书籍&#xff1a; TENSORFLOW REINFORCEMENT LEARNING QUICK START GUIDE 《TensorFlow强化学习快速入门指南-使用Python动手搭建自学习的智能体》 著者&#xff1a;[美]考希克巴拉克里希南&#xff08;Kaushik Balakrishnan&#xff09; 译者&#xff1a;赵卫东 出版…

Prompt、RAG、微调还是重新训练?如何选择正确的生成式AI的使用方法

生成式人工智能正在快速发展&#xff0c;许多人正在尝试使用这项技术来解决他们的业务问题。一般情况下有4种常见的使用方法&#xff1a; Prompt EngineeringRetrieval Augmented Generation (RAG 检索增强生成)微调从头开始训练基础模型(FM) 本文将试图根据一些常见的可量化…

爬虫逆向实战(十八)--某得科技登录

一、数据接口分析 主页地址&#xff1a;某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密&#xff1f; 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密&#xff1f; 无…

FreeRTOS qemu mps2-an385 bsp 移植制作 :串口打印篇

相关文章 FreeRTOS qemu mps2-an385 bsp 移植制作 &#xff1a;环境搭建篇 FreeRTOS qemu mps2-an385 bsp 移植制作 &#xff1a;系统启动篇 FreeRTOS qemu mps2-an385 bsp 移植制作 &#xff1a;系统运行篇 开发环境 Win10 64位 VS Code&#xff0c;ssh 远程连接 ubuntu …

小样本UIE 信息抽取微调快速上手(不含doccona标注)

文章目录 1.安装环境&#xff08;可略过&#xff09;2.模型简介&#xff08;略读&#xff09;抽取任务输入输出示例&#xff1a;1.实体识别2.关系抽取 3.快速上手(主菜)&#xff08;1&#xff09;转换数据标注数据样例 &#xff08;2&#xff09;生成训练数据训练数据样例 &…

【刷题笔记8.17】LeetCode:下一个排列

LeetCode&#xff1a;下一个排列 题目描述 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的…

Java调用https接口添加证书

使用InstallCert.Java生成证书 /** Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** - Redistri…

Druid 德鲁伊 | 安装、使用指南

Druid安装指南 1. druid简介1.1数据库连接池 2. 安装前的环境准备3. 安装步骤3.1 引入maven依赖3.1 编写配置文件3.3 启动Druid Monitor 4. druid使用指南4.1 数据源4.2 SQL监控4.3 SQL防火墙4.4 web应用4.5 URI监控 1. druid简介 druid是阿里开源的一个数据库连接池的解决方案…