建議129:泛型類型參數要以T作爲前綴

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章