建議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個建議》陸敏技