c# - 泛型/模板中的长(可读)名称

标签 c# java c++ templates generics

我发现自己有时使用 Java 泛型编写的代码看起来像这样:

/**Class description
 *@param <K> Key to '.....'
 public class Mappy<K>{
   ///class methods, fields, etc....
 }

有时使用单字符名称会导致速度变慢,几个月后我返回代码并且必须不断向上滚动才能记住“T”和“E”是什么。但我最后查了一下,Oracle 的官方指南是单字符名称,我从未见过 java 程序员不这样做。

在 C# 中,使用 TDescription 是官方风格指南的一部分,类似于 Google 和其他公司使用 Ixxxx 作为接口(interface)的方式。但我仍然在 C# 的生产代码和 API 中看到单字母名称。我听说它在 C++ 中很相似。在 Haskell 和 Ocaml 中,尤其是 Haskell,您在函数签名中使用 'a' 或 'b' 作为通用参数(忘记编译器/解释器是否强制这样做或者它们是否可以是多字母)。

我只是问这个“问题”,看看你们是怎么做到的:你们在泛型/模板/等中坚持使用单字母名称吗...,你们有像 Txxx 这样的约定吗?给他们起完整的名字(这会让同事感到困惑),还是您会做其他事情?

这与 Breaking java generics naming convention? 非常相似(我通过谷歌找到的)。而不是戳那个问题,我只是想收集一些现代意见(看看过去两年半是否有风格政变)。

编辑 1:

出现这个问题的原因可能是几天前我 promise 要转储变量“i”。太多次使用快速和肮脏的循环变量“i”导致嵌套循环和重构出现问题,所以我决定只使用完整的名称。

最佳答案

命名约定作为一种工具存在,可帮助您维护代码的可读性。

他们随时为您提供帮助。它们不是规则。
拥有易于阅读和可维护的代码比盲目地遵循命名约定具有更高的值(value)。

关于c# - 泛型/模板中的长(可读)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19769510/

相关文章:

c# - 安装 net core 后加载 hostfxr.dll 失败

c# - C++ 位图到 C# 位图

java - 在ProcessBuilder中添加双引号符号

c++ - 与 libfpx.so 链接错误 : undefined reference to

c++ - stringstream 输出的原因是什么?

java - Java Android 中的 C# OfType

c# - ASP .NET - 从选定的 Listview 控件行检索值?

java - 使用java从URL中删除jsessionid的正则表达式

java - Android Textview onTouchEvent

c++ - 启动 Weston 时无法开始调试