C 泛型問題

2021-05-26 18:04:52 字數 1174 閱讀 9679

氣泡排序, 乙個良好的演算法,  是既可以比較int ,float, string ,而非只是其中一種。

。那麼該如何做?  乙個方法是,過載函式,  寫多份**。

另外乙個則是泛型!!!!  是泛型,而不是過載運算子, 過載運算符號指的是:必須明確具體的型別進行過載,不能空洞,不明確型別進行過載。

實現乙個比較大小的介面icomparable即可。由於是基本的資料型別,所以沒有必要重寫icomparable介面中的compareto方法。

class testwhere t :icomparable

if(flag==false) break;

}   //end bubblesort

}   //end test

class mainclass

;float b = new float[n] ;

testtest1 = new test();

testtest2 = new test();

test1.bubblesort(a, n);

test2.bubblesort(b, n);

foreach(int i in a)

console.writeline(i);

foreach(int j in b)

console.writeline(j);}}

我的意思是,你應該回頭看看你自己的最初的想法,你寫的「於是我就在類中過載了」。可是這個時候你根本不可能過載,因為你不知道t具體是什麼,在test中是不能為空洞的t物件的運算進行過載的。只有在具體型別的源**的class中,你才可以過載。

對於靜態函式,能否實現泛型?

是可以的,

class testwhere t :icomparable

if(flag==false) break;

}   //end bubblesort

}   //end test

class mainclass

;float b = new float[n] ;

test.bubblesort(a, n);

foreach (int i in a)

console.writeline(i);

test.bubblesort(b, n);

foreach (float j in b)

console.writeline(j);}}

C 泛型 使用泛型List

一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...

C 泛型 泛型類擴充套件

泛型 更準確的使用一種以上的型別 方式 泛型允許我們宣告型別引數化的 我們可以用不同的型別進行例項化 也就是說,我們可以用 型別佔位符 型別引數 來宣告,然後在建立例項時提供真實型別 泛型不是型別,而是型別的模板 c 提供了5種泛型 類 結構 介面 委託和方法。前面四個是型別,方法是成員。一 泛型類...

C 泛型 泛型集合Dictionary

在system.collections.generic命名空間中,與arraylist相對應的泛型集合是list,與hashtable相對應的泛型集合是dictionary,其儲存資料的方式與雜湊表相似,通過鍵 值來儲存元素,並具有泛型的全部特徵,編譯時檢查型別約束,讀取時無須型別轉換。本儲存的例子...