建议129:泛型类型参数要以T作为前缀
来源:互联网 发布:淘宝买鹦鹉靠谱吗 编辑:程序博客网 时间:2024/05/22 02:30
建议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("123"); sampleClass.SampleMethod2<string>("123");
我们在使用SampleMethod方法的时候,如果将类型的泛型由T改为Person,很容易在类型内部会不自觉认为Person是一个类型,而不是一个泛型。而SampleMethod2带来的困扰就会少一些,因为泛型在使用它的地方被声明了。当然,无论如何,我们都不应该为泛型指定一个模棱两可的命名。记住,只要是泛型,就应该以T作为前缀命名。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
0 0
- 建议129:泛型类型参数要以T作为前缀
- Mysql中参数以“?”为前缀,以@作为前缀例如@deveui,后面参数传值会为空
- Go - 以任意类型的slices作为输入参数
- 泛型类型参数约束 <T> where T : class,new(){}
- 建议45:为泛型类型参数指定逆变
- c# 泛型类型参数T的约束where
- 以指针作为函数参数
- 建议97:优先考虑将基类型或接口作为参数传递
- 自定义泛型函数、以函数作为算法参数、仿函数等内容总结
- 使用泛型类型System.Collections.Generic.Icomparer <T> 需要一个类型参数
- MSDN:使用泛型 类型“System.Collections.Generic.IComparer <T> ”需要“1”个类型参数”。
- 获得泛型(generic class)参数类型T的实际类型(actual type)
- 用table类型作为参数
- 包装类型作为参数专递
- 【ThinkingInJava】5、以Object数组作为参数
- 类型“string”必须是不可以为 null 值的类型才能用作泛型类型或方法“System.Nullable<T>”中的参数“T”
- Java语言中,以String作为类型的变量在作为方法参数时所表现出的“非对象”的特性。
- 关于c#泛类型参数T的约束
- 设计模式再认识
- 手撸一个Android柱状图表
- MongoDB之索引
- Java日期处理
- 继承和多态
- 建议129:泛型类型参数要以T作为前缀
- Android LayoutTransition和android:animateLayoutChanges 淡入淡出
- Tyvj P2018 「Nescafé26」小猫爬山
- 前后端分离案例
- 教你安装Atom编辑器并使用震撼的编辑效果
- 【转载】常用到的SAP标准表
- php对象在内存中的存在形式分析
- SohoTask 自由的起点
- How to move ASM database files from one diskgroup to another