建议129:泛型类型参数要以T作为前缀

作为一种约定,泛型类型的参数要以T作为前缀。如委托声明:

Action<T1,T2>

其中,泛型类型参数名不应该处理成:

Action<Arg1,Arg2>

当然,这仅仅是一种习惯,若果使用第二种命名方式,编译器并不会报错,但是作为调用者,也许不能意识到这里是一个泛型类型参数。这个问题在为类型指定泛型的时候尤为明显,因为为类型指定泛型类型参数的声明不会出现在公开的接口中,如:

    class SampleClass<T>
{
public void SampleMethod(T t)
{ } public void SampleMethod2<T1>(T1 t)
{ }
}

在这个例子中,对两个方法的调用代码如下:

            SampleClass<string> sampleClass=new SampleClass<string>();
sampleClass.SampleMethod("");
sampleClass.SampleMethod2<string>("");

我们在使用SampleMethod方法的时候,如果将类型的泛型由T改为Person,很容易在类型内部会不自觉人为Person是一个类型,而不是一个泛型。而SampleMethod2带来的困扰就会少一些,因为泛型在使用它的地方被声明了。当然,无论如何,我们都不应该为泛型指定一个模棱两可的命名。记住,只要是泛型,就应该以T作为前缀命名。

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

最新文章

  1. jQ图片列表光标移动动画
  2. command not found,系统很多命令都用不了 ,修改环境变量
  3. js中eval() 方法的使用以及一些特殊的使用方式
  4. js笔记----(运动)淡入淡出
  5. UIView-4-EventForViews(在view上加入button时候的事件处理)
  6. js获取对象位置的方法
  7. java 选择文件夹对话框
  8. JS中for循序中延迟加载实现动态效果
  9. 【原创】Ajax的用法总结
  10. (转)用JUnit4进行单元测试
  11. OpenCV矩阵运算
  12. OO最后一次作业
  13. css固定表头,表单内容可以滑动
  14. python-web自动化-元素操作:windows窗口切换 / alert切换 / iframe切换
  15. vue父组件数据改变,子组件数据并未发生改变(那是因为你没写监听)附带子组件的写法
  16. Tomcat任意文件上传漏洞CVE-2017-12615
  17. linux 排查page的状态问题
  18. where are you from
  19. 洛咕 P3964 [TJOI2013]松鼠聚会
  20. pandas处理日期时间,按照时间筛选

热门文章

  1. 短URL链接系统
  2. 一个简单的异常/条件重试类(C#)
  3. 了解zookeeper
  4. Django中多种重定向方法使用
  5. Python 多进程使用
  6. js生成元素的事件不执行问题
  7. [Python Study Notes]pynput实现对鼠标控制
  8. SpringMVC 配置多个dispatcher 及WebApplicationInitializer的使用
  9. vue的样式绑定
  10. windows下使用GNU make命令报错的解决方法